自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录day43|动态规划part05

最后一块石头的重量 II解题思路最关键的步骤是将石头重量平均分成两份,middle = sum / 2。证明dp数组的含义:在容量为j的背包中,最大重量为dp[j]其实上述内容何完全等价于0/1背包问题。题目的关键点是如何转化为0/1背包问题,这也是leetcode动态规划题目的难点所在sum := 0for i:=0;

2023-10-06 03:24:57 88 1

原创 笔试题目总结

主要使用贪心思想,判断该职工的能力值是否大于M的难度值,如果大于,则分组数量加一;如果小于,那就判断其加一个能力值较小的组员是否能完成,如果不行,再加一个组员,直到人数乘以该组员的能力值大于任务难度值M。同时这里要判断好人数,也就是说当你加了一个人之后,对应的可选人数就要减少一个。,Amax表示改组员工能力的最大值,那么改组员工能够完成该任务。现在要将N个员工进行分组,假设某一组有K个员工,如果。解释:{[121], [82,37], [55, 43]}总共有N个员工,每个员工都有其对应的能力值。

2023-09-27 22:56:17 102 1

原创 理解背包问题

遍历到物品0,背包遍历到容量2,此时依然可以放下物品0,那么这里dp[2] = dp[2-weight[0]]+value[0] = dp[1] + 15 = 15 + 15 =30,这时意味着物品0被放入了两次。dp[j]表示容量为j的背包,所背的物品的价值可以最大为单dp[j],那么dp[0] = 0,其他非0下标的初始化则看给的物品价值是否为正值,因为递推公式的含义为。中选择一个,而这个时候背包j中只有物品i,前置背包中还没有物品,那相当于就是物品i和物品i+1比较谁的价值,谁就放入背包j中。

2023-09-21 21:51:26 127

原创 代码随想录训练营day14|二叉树part01遍历

写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。迭代法利用栈来实现,其实递归的底层实现也是栈,所以我们可以模拟栈来实现非递归遍历树。是因为对于中序遍历而言,访问和处理的节点并不同步,所以需要区分开进行处理,而对于前序和后续,可以做到访问和处理的节点同步。,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。

2023-08-15 01:56:01 83

原创 代码随想录训练营day12|栈与队列03

​通过括号匹配问题、字符串去重问题、逆波兰表达式问题掌握栈在做题当中的使用技巧。通过求滑动窗口最大值,以及前K个高频元素介绍了两种队列:单调队列和优先级队列主要需要了解在Go语言中,是如何实现常见的数据结构以及使用方法。在滑动窗口最大值问题中学会了使用单调队列,优先级队列的实现在这一块还没有掌握,其底层实现是利用堆的数据结构,后续需要对其进行实现,掌握其底层原理。

2023-08-13 00:12:11 124 1

原创 代码随想录训练营day10|栈与队列01

通过上面的步骤,我们可以发现,使用两个队列非常的麻烦。这里使用一个队列就能够模拟,简单来说,就是把队列变成循环队列,使用栈模拟队列,首先分析两个数据结构的特点,栈是先入后出,队列先入先出。注意:此处不能直接使用索引访问中间元素,只能使用索引访问栈顶元素,才能算是模拟栈的特点。同理,使用队列模拟栈,也可以使用两个队列来处理,一个用来保存,一个用来输入数据。由于Go中没有内置栈数据结构,本题使用切片来模拟栈的特点。前置元素先出队列,再入队列,直到首个元素是待弹出的元素。在Go语言中,是没有内置的。

2023-08-10 00:12:53 69 1

原创 代码随想录训练营day07|哈希表part02

关于哈希表的实现方式,在Go语言当中,官方的库里只有数组和map的实现方式,并没有set,只有第三方库的set实现,这是我后续需要去学习的地方。其次,需要在做题时需要分析何时使用数组,何时使用map。要依据两者数据结构的特点来选择相应的实现方式最后,对于Go语言中Map的底层实现原理,后续需要学习,在此插个眼,学习完之后在这儿总结一下。Go Map底层实现原理。

2023-08-08 01:22:54 105

原创 代码随想录训练营day06|哈希表part06

哈希表是根据关键码的值而直接进行访问的数据结构。通俗讲,就是根据索引直接访问结构中的数据。一般来哈希表用来判断一个元素是否出现在集合里。将数据映射到哈希表上是由哈希函数完成。

2023-08-01 22:07:00 106 1

原创 代码随想录训练营第一天|704.二分查找、27.移除元素

基于上述含义,我们可知,当快指针遇到目标值时跳过,当遇到非目标值时,将此处值更新至慢指针处,此时慢指针往后移一位。假设具有 n 个元素,则第一次查找剩余 n/2 个元素,第二次剩余 n/2/2个元素......以此类推。初始状态,设置left、right、middle指针,分别对应线性表的头部、尾部和中间位置。例子:[1,2,2,2,3],需要查找第一个2出现的位置。使用两层循环,一层循环遍历数组元素,一层循环更新数组元素。若目标值等于中间值,则返回中间指针对应的线性表位置。假设查找了 k 次,则剩余。

2023-07-26 23:02:21 190 1

空空如也

空空如也

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

TA关注的人

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