自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录动态规划05

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。。所以01背包和完全背包唯一不同体现在遍历顺序上。01背包的核心代码。从大到小遍历。

2023-08-17 18:22:02 55 1

原创 代码随想录动态规划04

推导公式为 dp[i][j] = Math.max(dp[i][j],dp[i - zeroNum][j - oneNum]+1)。纯01背包 是求 给定背包容量装满背包的最大价值是多少。递推公式为 dp[j] = Math.max(dp[j], dp[j - weight[i]] +value[i]);是求给定背包容量,装满背包有多少种方法。递推公式为 dp[j] += dp[j - nums[i]] (后边的状态都是由前边的状态推导出来的)。是求给定背包容量,能不能装满这个背包。

2023-08-17 17:51:56 67 1

原创 代码随想录动态规划03

要理解滚动数组的概念,注意在做题时能够看出来题目可以使用01背包解法。

2023-08-10 16:07:17 71 1

原创 代码随想录动态规划02

对于动规来说,确定好dp数组,找到合适的递推公式就成功了大半。

2023-08-09 15:51:42 50 1

原创 代码随想录贪心算法01

贪心算法没有套路,只有多练养成思维,局部最优推出全局最优。

2023-08-02 11:08:07 42

原创 代码随想录哈希表专题

今天开始了哈希表专题。官方说法中 哈希表是根据关键码的值而直接进行访问的数据结构。简单来讲数组就是一个哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素。一般哈希表都是用来快速判断一个元素是否出现集合里。当选择哈希法解决问题时,可以选择数组,set,map三种数据结构。哈希表都是用来快速判断一个元素是否出现集合里。哈希法牺牲了空间换取了时间。利用数组,set和map的特点,灵活选择作为哈希表。

2023-08-01 15:42:41 29 1

原创 代码随想录回溯算法专题04

这两道题,较之前的题递归的深度都有了进一步的加深(因为都是二维数组)。所以在刚开始思考时可能有点无法下手,但当认识到其本质还是一个回溯问题时,套进模版思考一下就会发现按照步骤也可以做出来,只不过合法性校验和单层循环逻辑麻烦了一点。 解数独因为其没有返回值,直接操作棋盘。所以在返回值方面有所改动。 对于using数组。using数组即可以标记元素的选取状态,又可以去重。正是因为其标记标记了元素的选取状态,才可以去重。

2023-07-30 10:46:22 53 1

原创 代码随想录回溯算法专题03

子集问题需要注意收集树中叶子节点和内部节点的集合。对于去重,如果给的数组不能排序(递增子序列)或需要using数组需要标记别的信息(全排列问题),可以使用set集合来去重。set集合是记录本层元素是否重复使用,新的一层set都会重新定义(清空),所以要知道set只负责本层!1.使用used数组进行标记元素的选取状态2.单层for循环 i 从 0 开始。

2023-07-27 15:24:51 75 1

原创 代码随想录回溯算法专题02

本次通过了5道题,分别是组合总和,组合总和II,分割回文串,复原IP地址和子集。组合总和的特点是数组无重复元素,每一个元素都可以被重复取。组合总和II的特点是数组有重复元素,但元素只能取一次。条件都是满足和为target。前者关键是startIndex在传参时要将 i 传过去以实现重复取,后者关键是使用using数组标记相同元素是位于同一树枝上还是同一树层上。分割回文串和复原IP地址都是分割问题,但也属于组合问题,都需要startIndex来保证解集中不出现重复元素。

2023-07-26 17:38:05 57 1

原创 代码随想录回溯专题01

本次博客记录了回溯算法的思想和模版,并练习了组合问题的经典题目,并学会了如何剪枝这一组合问题,还有组合问题的变式,即添加题目条件和修改每次遍历的集合。

2023-07-25 09:58:34 49

原创 动态规划(一)

也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n ,请计算 F(n)。个台阶向上爬需要支付的费用。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。

2023-03-25 00:09:27 340

原创 二叉树的遍历

二叉树的遍历分为深度优先搜索和广度优先搜索。深度优先搜索有前序遍历(中左右),中序遍历(左中右)和后序遍历(左右中),每种方法又有递归写法和迭代写法。广度优先遍历即层序遍历(迭代法)。对于二叉树,掌握其遍历方法非常重要,在做题过程中找到合适的遍历方法对解出这个题是非常重要的。

2022-11-21 21:26:21 337 1

原创 栈与队列相关题目

1.对于栈和队列来说,要了解清楚其底层代码是如何书写的,这样用的时候才能得心应手。2.栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中是不是连续分布。3.要理解单调队列和优先级队列。

2022-10-30 20:12:29 104

原创 链表经典题目

链表经典题目(代码随想录)

2022-09-26 00:21:33 153 1

原创 【数组】移除元素

数组移除是元素之间的覆盖设置两个指针 fastIndex = 0,slowIndex = 0fastIndex 用来寻找新数组的元素,即不含val的数组slowIndex 用来标记新数组的下标

2022-09-18 21:06:31 701

原创 【数组】二分查找

二分查找及其例题

2022-09-18 15:21:53 107

原创 集合的交集、并集、差集和输入数据时查重(链表)

1.求并集,为保留原数据,创建新的链表复制集合A,拿集合B的一个元素依次与新链表的全部元素比较,若没有相同的数据则在新链表之后添加该数据,直至集合B的最后一个元素比较完毕。2.求交集,创建新链表,拿集合B的一个元素依次与集合A的元素比较,若有相同的元素,则把这个元素复制到新链表末尾。3.求差,创建新链表,A-B时,拿集合A的一个元素依次与集合B的元素比较,若无相同的元素,把其复制到新链表末尾。B-A同理。

2022-09-07 20:39:42 738 4

空空如也

空空如也

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

TA关注的人

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