- 博客(133)
- 收藏
- 关注
原创 刷题记录第110天-分割等和数组
dp[i][j]表示在[0…递推方程分为两种情况,不选第i个物品dp[i-1][j],选第i个物品dp[i-1][j-num[i]]+val[i],则递推方程为dp[i][j]=max(dp[i-1][j], dp[i-1][j-num[i]]+val[i]),而这里我们的价值看成重量,即能装的最大重量。如果给定容量为target的背包,能装的最大重量为target,则是能装满的。问题可转化为,用给定数组能否装满一个容量为数组总和一半的背包(target=sum/2),即一个0-1背包问题。
2024-08-15 00:41:09 226
原创 刷题记录第109天-K个一组反转链表
第三步:给定一个初始头结点head,先走k步得到尾结点tail,如果走不到,则证明剩下的不足K哥啊,可直接return。否则,就调用第一步的函数反转此时的[head,tail]之间的链表,并将这个链表接回到原始链表中(这里需要记录每组链表头结点的前一个节点prev),重复该操作,直到head为空。第一步:实现一个数组,给定一段链表的头结点和尾节点,反转该链表,并返回新的头结点和尾结点。第二步:初始化一个虚拟头结点,用于记录最终头结点和规范操作。
2024-08-14 00:16:46 292
原创 刷题记录第108天-求一个数的平方根(精确到小数点后五位)
思路:利用二分法,当mid*mid大于目标x时,证明mid就大于x的平方根,此时就可以缩小范围。结束条件由精确程度决定,比如题目要求的五位小数,那么结束条件就是解的范围小于0.00001。
2024-08-13 23:27:22 221
原创 刷题记录第104天-找出现两次的数
当成索引,把这个索引的值取反(加个负号)。因为我们只是改变符号,所以不改变数的绝对值。当遇到索引的值为负数时,证明这个索引是第二次被查询(因为一开始所有的数都是正数),此时(索引+1)是第二次出现,就可以收获结果。利用数组值和索引的范围关系,每遇到一个数,就把这个。
2024-07-13 17:55:59 168
原创 刷题记录第九十九天-与排序相关的题-第K大的数和逆序对的数量
思路是:一个数组逆序对的数量等于左部分+右部分+横跨中间的逆序对数量。求第K大的数—利用快速排序的思想。求逆序对的数量-归并排序。
2024-05-26 20:38:32 163
原创 刷题记录第七十六天-二叉树的最近公共祖先
第二种:目标节点落在左右子树中的一颗中,此时left和right有一个是NULL有一个不是NULL,此时非空的那个就是他们的最近公共祖先。如果当前节点不等于目标节点,那么递归调用该函数获得左子树和右子树的公共节点(left和right)。第一种:目标节点分别在左右子树中,那么left和right都会是非空,此时root就是他们的最近公共祖先。如果当前节点等于目标节点中的一个,就返回当前节点。因为继续往下遍历没有意义。
2024-03-15 19:18:21 187
原创 刷题记录第七十五天-二叉搜索树中的众数--遇见二叉搜索树就利用中序遍历递增特性
【代码】刷题记录第七十五天-二叉搜索树中的众数--遇见二叉搜索树就利用中序遍历递增特性。
2024-03-15 17:21:42 71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人