leetcode 面试经典 150 题 做题思绪快查

知者何南  论坛元老 | 2025-3-28 21:13:09 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 2048|帖子 2048|积分 6144

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
322. 零钱兑换

1. 注意界限条件 i <= amount
2.更新数组的条件
if(i - c >= 0 && dp[i - c] != INT_MAX){ // 确保前面的值是有用的
      dp = min(dp, dp[i - c] + 1);
  }
300. 最长递增子序列

输入:nums = [10,9,2,5,3,7,101,18] 输出:4, 最长递增子序列是 [2,3,7,101],因此长度为 4
思绪:nums > nums[j] =>dp  = max(dp, dp[j+1]) // 只有当前元素nums 比前面的元素大时,才算作递增子序列;
出错原因:(1) 取dp[n], n = nums.size() - 1; 为终极结果 (2) 定义了max_len = 0,  但是在全部元素相同的场景下, 不会更新max_len, max_len = 0;
11. 盛最多水的容器 [双指针双端向中间移动,关键是谁移动]

输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:数组 [1,8,6,2,5,4,8,3,7], 在此情况下,容器能够容纳水(表现为蓝色部门)的最大值为 49。
  l指向arr左边,r指向arr右边,先移动min(arr[l], arr[r])。
  解释: 以[2 8 1]为例子, l++ 则 s = 1 * 1 = 1; r--, 则s = 2 * 1 = 2,以是每次排除短的一边
167. 两数之和 II - 输入有序数组 [双指针双端向中间移动,关键是谁移动]
非递减顺序分列, 请你从数组中找出满足相加之和等于目标数 target 的两个数
  l 指向arr左边,r指向arr右边;arr[l] + arr[r] > target ==> r--



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表