力扣热题 100

文章目录

    • 哈希
    • 双指针
    • 滑动窗口
    • 子串
    • 普通数组
    • 矩阵
    • 链表
    • 二叉树
    • 图论
    • 回溯
    • 二分查找
    • 贪心算法
    • 动态规划
    • 多维动态规划
    • 技巧

哈希

双指针

  1. 移动零
class Solution {public void moveZeroes(int[] nums) {int k = 0;for(int i = 0;i < nums.length; i++){if(nums[i] != 0) {nums[k] = nums[i];k++;}}for (int i = k; i < nums.length; i++) {nums[i] = 0;}}
}
class Solution {public void moveZeroes(int[] nums) {int k = 0;for (int i = 0; i < nums.length; i++) {if (nums[i] != 0) {int temp = nums[i];nums[i] = nums[k];nums[k] = temp;k++;}}}
}
  1. 盛最多水的容器
class Solution {public int maxArea(int[] height) {int left = 0, right = height.length - 1;int ans = 0;while (left < right) {int area = Math.min(height[left], height[right]) * (right - left);ans = Math.max(ans, area);if (height[left] <= height[right]) {left++;} else {right--;}}return ans;}
}
  1. 接雨水
class Solution {public int trap(int[] height) {int left = 0, right = height.length - 1;int leftMax = 0, rightMax = 0;int ans = 0;while (left < right) {leftMax = Math.max(leftMax, height[left]);rightMax = Math.max(rightMax, height[right]);if (height[left] < height[right]) {ans += leftMax - height[left];left++;} else {ans += rightMax - height[right];right--;}}return ans;}
}

滑动窗口

子串

普通数组

矩阵

链表

二叉树

  1. 二叉树的中序遍历
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> reusltList = new ArrayList<>();inorderVisited(root, reusltList);return  reusltList;}private void inorderVisited(TreeNode root, List<Integer> reusltList) {if (root == null) {return;}inorderVisited(root.left, reusltList);reusltList.add(root.val);inorderVisited(root.right, reusltList);}
}
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> reusltList = new ArrayList<>();inorderVisited(root, reusltList);return  reusltList;}private void inorderVisited(TreeNode root, List<Integer> reusltList) {Stack<TreeNode> stack = new Stack<>();while (root != null || !stack.empty()) {while (root != null) {stack.push(root);root = root.left;}root = stack.pop();reusltList.add(root.val);root = root.right;}}
}

图论

回溯

二分查找

贪心算法

动态规划

在这里插入图片描述

  1. 爬楼梯
class Solution {public int climbStairs(int n) {int[] dp = new int[n+1];dp[0] = 1;dp[1] = 1;for(int i = 2;i <= n; i++){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
}
  1. 打家劫舍
class Solution {public int rob(int[] nums) {if (nums.length == 0) {return 0;}int len = nums.length;int[] dp = new int[len+1];dp[0] = 0;dp[1] = nums[0];for(int i = 2; i <= len; i++){dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);}return dp[len];}
}
  1. 完全平方数
class Solution {public int numSquares(int n) {int[] dp = new int[n + 1];for(int i = 1; i <= n;i++) {int minn = Integer.MAX_VALUE;for(int j = 1; j * j <= i; j++){minn = Math.min(minn, dp[i - j * j]);}dp[i] = minn + 1;}return dp[n];}
}
  1. 零钱兑换
class Solution {public int coinChange(int[] coins, int amount) {int[] dp = new int[amount + 1];Arrays.fill(dp, amount + 1);dp[0] = 0;for (int i = 1; i <= amount; i++) {for (int coin : coins) {if (i < coin) {continue;}dp[i] = Math.min(dp[i], dp[i - coin]);}dp[i] += 1;}return dp[amount] > amount ? -1 : dp[amount];}
}
class Solution {public int coinChange(int[] coins, int amount) {int[] dp = new int[amount + 1];Arrays.fill(dp, amount + 1);dp[0] = 0;for (int i = 1; i <= amount; i++) {for (int coin : coins) {if (i < coin) {continue;}dp[i] = Math.min(dp[i], dp[i - coin] + 1);}}return (dp[amount] == amount + 1) ? -1 : dp[amount];}
}
  1. 分割等和子集
class Solution {public boolean canPartition(int[] nums) {if (nums == null || nums.length == 0) {return false;}int len = nums.length;int sum = 0;for (int num : nums) {sum += num;}if (sum % 2 != 0)return false;int target = sum / 2;int[] dp = new int[target + 1];for (int i = 0; i < len; i++) {for (int j = target; j >= nums[i]; j--) {dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]);}if (dp[target] == target) {return true;}}return dp[target] == target;}
}

多维动态规划

技巧

  1. 只出现一次的数字
class Solution {public int singleNumber(int[] nums) {int ans = 0;for (int num : nums) {ans ^= num;}return ans;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/341127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘关键指标稳定币供应比率(SSR):它如何影响你的投资?

作者&#xff1a;lesleyfootprint.network 数据源&#xff1a;The Stablecoin Dashboard 在加密世界里&#xff0c;稳定币扮演着重要的角色&#xff0c;为投资者提供了一个相对稳定的避风港。 稳定币旨在保持相对稳定的价值&#xff0c;这通常通过将它们与商品、法定货币挂钩…

(leetcode)替换所有的问号 -- 模拟算法

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接 力扣&#xff08;LeetCode&#xff09; 输入描述 string modifyString(string s) 输入一个字符串&#xff0c;字符串中仅包含小写字母和 ‘?’ 字符。 输出描述 将问号替换为小写字母&#xff0c;且这个替…

全链路压力测试有哪些主要作用

全链路压力测试是在软件开发和维护过程中不可或缺的一环&#xff0c;尤其在复杂系统和高并发场景下显得尤为重要。下面将详细介绍全链路压力测试的主要作用。 一、全链路压力测试概述 全链路压力测试是指对软件系统的全部组件(包括前端、后端、数据库、网络、中间件等)在高负载…

机器学习激活函数

激活函数 激活函数是人工神经网络中的一个重要组成部分。它们用于向神经网络中添加非线性因素&#xff0c;使得网络能够解决复杂问题&#xff0c;如图像识别、语言处理等。激活函数的作用是决定一个神经元是否应该被激活&#xff0c;也就是说&#xff0c;它帮助决定神经元的输…

uni-app中实现音乐播放器

uni-app中实现音乐播放器 1、主要利用的是uni-app中提供的uni.createInnerAudioContext()来进行实现&#xff1b; 2、代码示例 &#xff08;1&#xff09;主页面代码展示 <template><view class"music-layout"><view class"tn-flex">…

ADOV路由和DSR路由matlab对比仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 ADOV路由&#xff08;Ad hoc On-demand Distance Vector Routing&#xff09; 4.2 DSR路由&#xff08;Dynamic Source Routing&#xff09; 5.完整程序 1.程序功能描述 ADOV路由和DSR…

迅为RK3568开发板Android11/12/Linux编译驱动到内核

在平时的驱动开发中&#xff0c;经常需要在内核中配置某种功能&#xff0c;为了方便大家开发和学习&#xff0c;本小 节讲解如何在内核中添加驱动。具体的讲解原理讲解请参考本手册的驱动教程。 Android11 源码如果想要修改内核&#xff0c;可以运行以下命令进行修改: cd ke…

【python】python新年烟花代码【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 新年的钟声即将敲响&#xff0c;为了庆祝这个喜庆的时刻&#xff0c;我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。 一、效果图&#xff1a; 二…

R730服务器做了raid的硬盘,插在R720上面可以用吗?

环境 戴尔R720 戴尔R730 问题描述 R730服务器做了raid的硬盘&#xff0c;插在R720上面可以用吗&#xff1f; 解决方案 1.直接在 R730服务器做了raid的硬盘&#xff0c;卸下来在插在r720上面使用 &#xff0c;读不到硬盘 2.前往R730服务器上面&#xff0c;去清除RAID配置的…

第二百六十回

文章目录 知识回顾示例代码经验总结 我们在上一章回中介绍了通道相关的内容&#xff0c;本章回中将介绍其中的一种通道&#xff1a;MethodChannnel.闲话休提&#xff0c;让我们一起Talk Flutter吧。 知识回顾 我们在上一章回中介绍了通道的概念和作用&#xff0c;并且提到了通…

GEE查看MODIS的NDVI、EVI产品并生成逐日/逐月NDVI曲线

目录 MOD13Q1MOD09GA计算逐日/逐月NDVI生成曲线参考博文 MOD13Q1 MOD13Q1有两个产品&#xff1a;NDVI和EVI&#xff0c;每16天为全球提供&#xff0c;分辨率为250M 通过查看时间&#xff0c;该NDVI产品是16天一景 MOD09GA 提供逐日的表面反射率产品&#xff0c;分辨率为500m…

计算机网络 物理层

文章目录 物理层物理层的基本概念数据通信的基础知识数据通信系统的模型有关信道的几个基本概念信道的极限容量 物理层下面的传输媒体导引型传输媒体非引导型传输媒体 信道复用技术波分复用码的复用 宽带接入技术ADSL 技术光纤同轴混合网 (HFC 网&#xff09;FTTx 技术 物理层 …