自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 LeetCode Hot100 动态规划 338. 比特位计数

分析:这题的意思就是比如给你 100 这个数,然后让你看 1,2,3,...,100 这100个数字分别转化为二进制以后 相应的二进制数都有多少个1考虑到每一个数字都得转化为二进制求有多少个1,所以使用动态规划思路对于所有的数字,只有两类:奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是最低位的 1。 举例: 0 = 0 1 = 1 2 = 10 3 = 11偶数:二进制表示中,偶数中 ...

2022-04-07 15:00:56 274

原创 LeetCode Hot100 105. 从前序与中序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树

分析:构造树可以用递归的方法来根据条件构造:(主要是考虑好递归的边界问题)1.从前序数组里可以知道preorder[0]为根节点 2.在中序数组中找到preorder[0]的位置坐标,即preorder[0]==inorder[i] 3.1~i是前序左子树范围 i+1~preorder.length -1 是前序右子树范围 4.0~i-1是中序左子树范围i+1~inorder.length -1 是中序右...

2022-04-06 18:49:24 824

原创 LeetCode Hot100 动态规划 139. 单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。示例 2:输入: s = "applepenapple", wordDict = [

2022-03-20 20:36:48 221

原创 LeetCode Hot100 136. 只出现一次的数字

分析:而且异或满足乘法结合律 即:4^1^2^1^2 也= 1^1^2^2^4=0^0^4=4所以,如果两个数字一样异或以后就一定为0class Solution { public int singleNumber(int[] nums) { int res = 0; for(int i = 0; i < nums.length; i++){ res = res ^ nums[i]; } ...

2022-03-18 20:25:57 241

原创 LeetCode Hot100 114. 二叉树展开为链表

分析:使用先跟遍历可以打印输出 1-2-3-4-5-6,,所以基础做题一定是用先根遍历class Solution { public void flatten(TreeNode root) { if(root==null) return; TreeNode temp = root.right;//记录右孩子节点,不然断开以后会再也找不到 root.right = root.left;//让右孩子节点等于左孩子 ro...

2021-12-21 18:57:26 483

原创 LeetCode Hot100 102. 二叉树的层序遍历

分析: 1.首先(利用队列)写出二叉树的层次遍历2.在此基础上存储每一层的元素信息public static void levelOrder (TreeNode root) { if(node==null) return;//空节点不做操作 Queue<TreeNode> queue = new LinkedList<TreeNode>();//创建队列 queue.offer(root);//存入根...

2021-12-21 18:51:22 387

原创 LeetCode Hot100 动态规划 64. 最小路径和

分析:该题类 似62 不同路径问题:LeetCode Hot100 62. 不同路径_FlowShip的博客-CSDN博客分析,这种不能回头算最优解的题,一般考虑用冬天规划来做,记录每一个状态的解1.当这个网格是单 行 时,肯定是只有一种方式到达终点那就是一直从左向右横着走到头dp[0][0,1,2,3,....,n-1]= 1;2.当这个网格是单 列时,肯定是只有一种方式到达终点那就是一直从上到下竖着走到头dp[0,1,2,3,....,m-1][0]= 1;3.即:下一个格子到达的可能性肯定是...

2021-12-16 22:42:34 103

原创 LeetCode 动态规划 63. 不同路径II

分析:只有①和②这两条可能的道路,因为中间的大石头给挡住了由上一个贴子可知:LeetCode Hot100 62. 不同路径_FlowShip的博客-CSDN博客https://blog.csdn.net/FlowShip/article/details/121984508下一个格子到达的可能性肯定是上两个格子能到达的可能性相加所以在没有障碍的62题 基础上加上判断即可,即遇到障碍就跳过当前的障碍,不继续遍历。解题步骤:1.由题意得,这个网格是个 m =obstacleGrid...

2021-12-16 22:20:56 263

原创 LeetCode Hot100 62. 不同路径

分析,这种不能回头算最优解的题,一般考虑用冬天规划来做,记录每一个状态的解1.当这个网格是单 行 时,肯定是只有一种方式到达终点那就是一直从左向右横着走到头dp[0][0,1,2,3,....,n-1]= 1;2.当这个网格是单 列时,肯定是只有一种方式到达终点那就是一直从上到下竖着走到头dp[0,1,2,3,....,m-1][0]= 1;3.即:下一个格子到达的可能性肯定是上两个格子能到达的可能性相加即:dp[i][j] = dp[i-1][j...

2021-12-16 21:54:35 117

原创 LeetCode Hot100 34. 在排序数组中查找元素的第一个和最后一个位置

分析:个人习惯:这种需要命中target的 找数的题 直接用二分法low mid hight 三个指针思路:1.先找到这个target数存在的位置,找不到直接 return {-1,-1}2.找到这个数了以后,二分法的特性,nums[mid] == target 是肯定的了。那么就令从这个数当前的位置(low = high = mid)3.只要low有上一个元素,并且上一个元素 == target 那就继续往前找 low-- 只要high有下一个元素,并且...

2021-12-13 15:55:39 325

原创 LeetCode Hot100 动态规划 55. 跳跃游戏

分析:例 nums=[5,3,2,0,8,10]1 .建立dp[]数组,里面记录可以跳的最远的格子i 表示格子:第 0 格 ,第 1 格,第 2格,......,第 nums.length-1格dp[0] = i + nums[i] = 0 + 5 = 5,即在i = 0 处最远可以跳到 i=5的格子dp[1] = i + nums[i] = 1 + 3 = 4,即在i = 1 处最远可以跳到 i=4的格子dp[1]只可以跳到i = 4,而dp[0]可以跳到i=5 很明显 dp...

2021-12-13 14:00:30 2864

原创 LeetCode 动态规划 121. 买卖股票II

方法1:直接对比法如果今天的价格比昨天的贵,那就直接算 最大利润 = 今天的价格 - 昨天的价格 public int maxProfit(int[] prices) { int maxProfit = 0; for(int i = 1; i < prices.length; i++){ if(prices[i-1]<prices[i]){ maxProfit += prices[i...

2021-12-11 18:32:12 272

原创 LeetCode 动态规划 121. 买卖股票

分析:利润为负数统一为 0利润prices = [7,1,5,3,6,4]1.我们要顺着找出,最便宜的买点 和 最贵的卖点2.然后 profit =最贵的卖点 -最便宜的买点3.那么定义 maxProfit = 0 记录最贵的卖点,minPrice = prices[0]为最便宜的买点4.然后顺着逐一比对寻找即可 int maxProfit = 0;//定义利润 int minPrice = Integer.MAX_VALUE;//定义买入的...

2021-12-11 16:16:31 163

原创 LeetCode Hot100 53. 最大子数组和

分析 :nums = [-2,1,-3,4,-1,2,1,-5,4],然后需要找出其中连续的哪几个数的和最大可以将问题想成:以 -2 结尾的 平台累加是否最大? 以 1结尾的 平台累加是否最大? 以 -3结尾的 平台累加是否最大? .............. ...

2021-12-11 15:45:28 179

原创 LeetCode Hot100 49. 字母异位词分组

分析:输入一个字符串例如:strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出分类后的列表,那么从 ["ate","eat","tea"] 得知,该list里所有单词都由 “e” “a“ ”t” 组成既然这样,那么所有符合“e” “a“ ”t” 的单词,1.字母拆解之后(char[] chars = str.toCharArray) str[0] ="eat" ,chars = [“e”, “a“, ”t”]2.再进行排序...

2021-12-10 13:55:57 192

原创 LeetCode Hot100 31. 下一个排列

难度中分析:例如 nums = [1,5,4,3,2], 最终结果应该是:[2,1,3,4,5]错误的结果: [5,1,4,3,2],因为题目意义是让你找比 nums=[1,5,4,3,2]稍大一点点的排列。解题思路:1.从最后一个元素 i 向前开始比,找到 nums[i] > nums[i-1]2.把nums[i]——最后从小到大排序 sort一下现在结果:[1,2,3,4,5]3.从 i 坐标开始,向后找,找到第一个 > i-...

2021-12-09 20:24:16 451

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除