- 博客(59)
- 收藏
- 关注
原创 背包问题(动归)
背包问题,大家都知道,有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。背包问题有多种背包方式,常见的有:01背包、完全背包、多重背包、分组背包和混合背包等等。要注意题目描述中商品是不是可以重复放入。即。
2024-06-21 22:36:15
913
原创 贪心+动态规划1
给你一个非负整数数组 nums ,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true;否则,返回 false。给定一个长度为 n 的整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。给你一个字符串 s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段。
2024-06-21 22:33:07
895
原创 回溯算法常见思路
来回顾一下排列/组合/子集问题的三种形式在代码上的区别。由于子集问题和组合问题本质上是一样的,无非就是 base case 有一些区别,所以把这两个问题放在一起看。形式一、元素无重不可复选/* 组合/子集问题回溯算法框架 */// 回溯算法标准框架i++) {// 做选择// 注意参数// 撤销选择/* 排列问题回溯算法框架 */i++) {// 剪枝逻辑continue;// 做选择// 撤销选择形式二、元素可重不可复选/* 组合/子集问题回溯算法框架 */
2024-06-03 21:00:17
828
原创 MySQL常用语法练习
举个例子:某个学校可以按照班级将学生分组,并对每个班级进行统计。查看每个班级有多少学生、每个班级的平均成绩。这样我们就能够对学校各班的学生情况有一个整体的了解,而不是单纯看个别学生的信息。在 SQL 中,通常使用 GROUP BY 关键字对数据进行分组。
2024-05-26 10:59:48
818
原创 二分查找(前提是数组、有序、不包含重复元素)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。// 搜索区间为 [left, right]// 搜索区间变为 [mid+1, right]// 搜索区间变为 [left, mid-1]// 收缩右侧边界// 检查出界情况return -1;
2024-05-24 22:40:36
318
原创 哈希法应用 空间换时间
不过排序的时间复杂度是 O(NlogN),而题目要求我们时间复杂度为 O(N),这就得另想办法了。想找连续序列,首先要找到这个连续序列的开头元素,然后递增,看看之后有多少个元素还在 nums 中,即可得到最长连续序列的长度了。我们可以用空间换时间的思路,把数组元素放到哈希集合里面,然后去寻找连续序列的第一个元素,即可在 O(N) 时间找到答案。map是一种key value的存储结构,可以用key保存数值,用value再保存数值所在的下标。,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故。
2024-05-24 22:39:57
293
原创 代码随想录第29天 回溯算法part05 * 491.递增子序列* 46.全排列* 47.全排列 II
本题 就是我们讲过的 40.组合总和II 去重逻辑 和 46.全排列 的结合,可以先自己做一下,然后重点看一下 文章中 我讲的拓展内容。used[i - 1] == true 也行,used[i - 1] == false 也行。本题重点感受一下,排列问题 与 组合问题,组合总和,子集问题的区别。为什么排列问题不用 startIndex。本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。
2023-12-14 21:53:09
47
原创 代码随想录第28天 回溯算法 93.复原IP地址 ● 78.子集 ● 90.子集II
大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。子集问题,就是收集树形结构中,每一个节点的结果。整体代码其实和 回溯模板都是差不多的。本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了。
2023-12-13 22:25:26
38
原创 代码随想录第27天 ● 39. 组合总和● 40.组合总和II● 131.分割回文串
注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。本题较难,大家先看视频来理解 分割问题,明天还会有一道分割问题,先打打基础。本题开始涉及到一个问题了:去重。
2023-12-12 17:31:07
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人