草庐IT

随想录

全部标签

代码随想录day2|有序数组的平方、长度最小的子数组、螺旋矩阵

前言:今天去校医院拔了两颗牙,太痛了,今天写的博客就比较水。1、有序数组的平方(双指针法)classSolution{public:vectorsortedSquares(vector&nums){intk=nums.size()-1;vectorresult(nums.size(),0);//创造一个数组result长度与nums相同for(inti=0,j=nums.size()-1;i2、长度最小的子数组(滑动窗口)classSolution{public:intminSubArrayLen(inttarget,vector&nums){intresult=INT32_MAX;//返回值

代码随想录算法训练营第四十二天-动态规划4|● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

今天只有1道题,属于动态规划的01背包问题的应用。首先理解一下动态规划的01背包问题。推荐一个视频,动态规划DP0-1背包,这是我认为讲得最为通透的。很多讲解动态背包问题的,一上来就画二维表格,遍历背包或者遍历容量,其实本质上,根本就看不懂那个二维表格是什么意思,为什么容量每次都要从0开始遍历。从原理上讲,容量从0开始只是一种假设,为的是让后面的背包如果装东西了,那么背包容量就会减少,再减少了容量后,怎么挑选物品才会使得质量最高,因此需要从0遍历,这些都是起了给后面的递归初始化一个值的作用。 小偷偷东西,有一个8容量背包,那么他开始从编号4开始偷(也可以从编号1开始偷),他有两种选择,偷或者不

思维随想录--ChatGPT商业预见

思维随想录–ChatGPT商业预见仅代表个人的一些浅见想法,不具有任何权威指导性,欢迎各位同仁批评交流!后疫情时代,国内市场一片衰颓,百废待兴,国外头部企业裁员浪潮也是接踵而至,甚至是一度逆市场增长的互联网也显得疲软无力,人们已经对市场已经失去了期待。而这时,2022到2023之交,ChatGPT的出线,一石激起千层浪,引发了互联网世界的一场小高潮,尤其刺激了AIGC创业者们的神经,犹如垂死病中惊坐起,给人们带来了新世界的期望。大力出奇迹!OpenAI真的通过大模型、强算力使ChatGPT实现了比拟人类的自然语义理解能力,这真的算是一个历史性的突破了,AI真正意义上的从“人工智障”时代迈进了真

代码随想录day44

完全背包其实就是每个物品可以使用无数次,给我们一个容器,装满这个容器的最大价值是多少。思路:如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。完全背包的组合和排序518.零钱兑换II题目给你一个整数数组coins表示不同面额的硬币,另给一个整数amount表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回0。假设每一种面额的硬币有无限个。题目数据保证结果符合32位带符号整数。示例1:输入:amount=5,coins=[1,2,5]输出:4解释:有四种方式可以凑成总金额:5=55=2

代码随想录算法训练营第三天 | LeetCode 203.移除链表元素 、​LeetCode 707.设计链表、LeetCode 206.反转链表

LeetCode 203.移除链表元素classSolution{public:ListNode*removeElements(ListNode*head,intval){//删除头结点while(head!=NULL&&head->val==val){//注意这里不是ifListNode*tmp=head;head=head->next;deletetmp;}//删除非头结点ListNode*cur=head;while(cur!=NULL&&cur->next!=NULL){if(cur->next->val==val){ListNode*tmp=cur->next;cur->next=c

代码随想录算法训练营第一天 704 二分查找、27 移除元素

代码随想录算法Day1|704.二分查找、27.移除元素Lasteditedtime:April5,202311:27AM数据理论基础数组是存放在连续内存空间上的相同类型数据的集合。数组下标都是从0开始的。数组内存空间的地址是连续的数组元素不能删除,只能覆盖C++中二维数组的内存的空间地址是连续的704.二分查找二分法前提:数组为有序数组,且数组中无重复元素循环不变量:对区间的定义应该是一个不变量,在边界处理中应该遵循统一原则左闭右闭:classSolution{public:intsearch(vectorint>&nums,inttarget){intleft=0;intright=num

代码随想录【链表】--->删除倒数第N个节点、链表相交、环形链表

⭐️代码随想录⭐️数组篇:二分查找移除数组有序数组的平方长度最小的数组螺旋矩阵链表篇:链表移除设计链表反转链表交换链表中的节点文章目录19.删除链表的倒数第N个结点思路代码面试题02.07.链表相交思路代码142.环形链表II思路判断链表有环确定环的入口代码19.删除链表的倒数第N个结点题目LeetCode19.删除链表的倒数第N个结点思路这道题的逻辑比较清晰1.先找到倒数第n+1个节点2.删除倒数第n个节点为什么要找倒数第n+1个节点而不是倒数第n个节点呢?因为删除第n个节点时我们需要知道该节点的前一个节点在哪里,修改前一个节点的指针域来实现删除该节点,所以关键在于如何寻找倒数第n+1个节点

代码随想录训练营第二天 | 977.有序数组的平方、209.长度最小的子数组 、59.螺旋矩阵II

977有序数组的平方题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序977.有序数组的平方思路找到分段点,然后双有序数组插入新数组(i++,j--这样遍历)代码 classSolution{   publicint[]sortedSquares(int[]nums){     intlen=nums.length;     if(len==0)returnnums;//空集直接结束     int[]neg=newint[len];     int[]pos=newint[len];     int[]ans=newint[len];   

【代码随想录训练营】【Day23】第六章|二叉树|669. 修剪二叉搜索树 |108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树

修剪二叉搜索树题目详细:LeetCode.669做这道题之前建议先看视频讲解,没有想象中那么复杂:代码随想录—修剪二叉搜索树由题可知,需要删除节点值不在区间内的节点,所以可以得到三种情况:情况一:root.val情况二:root.val>high情况三:low当节点满足情况一和情况二的条件时,删除该节点但被删除节点的子树可能存在值在区间内的节点,利用二叉搜索树的特点可得:情况一:root.val情况二:root.val>high,root左子树上的节点值都比root.val小,右子树上的节点值都比root.val大,所以满足区间的节点只会在左子树上出现,递归修剪其左子树并返回新的子节点情况三:

代码随想录Day02:977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

目录Day02:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II977.有序数组的平方方法一:暴力排序法方法二:双指针法209.长度最小的子数组方法一:暴力解法方法二:滑动窗口(双指针的思路)59.螺旋矩阵II数组总结篇二分法双指针法滑动窗口模拟行为Day02:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II977.有序数组的平方【题目建议】:本题关键在于理解双指针思想【随想录文章讲解】【卡哥视频讲解】方法一:暴力排序法**思路:**先对数组中每个数进行平方运算,然后再排序classSolution{public:vectorint>sortedSqua