• 2024-06-30C语言力扣刷题11——打家劫舍1——[线性动态规划]
    力扣刷题11——打家劫舍1和2——[线性动态规划]一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划2、思路说明四、解题代码(附注释)一、博客声明  找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解题思路,开辟这个系列来记录
  • 2024-06-22238. 除自身以外数组的乘积
    题目给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例1:输入:nums=
  • 2024-06-12C语言王国——数组的旋转(轮转数组)三种解法
    一、题目给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]示例
  • 2024-05-26每日一练——两数之和(暴力枚举)
     1.两数之和-力扣(LeetCode)/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*twoSum(int*nums,intnumsSize,inttarget,int*returnSize){//i遍历下标for(inti=0;i<numsSize;++i){//j遍历i之后
  • 2024-03-242024-3-24刷题的一个小错误,居然这么基础-_-!!
    力扣刷题刷到简单二分查找时,一运行代码就提示超时,怎么就超时了?反反复复几次,发现(right-left)>>1+left这一步需要在移位运算部分加括号,查了一下,基础中的基础是:移位运算优先级低于“+-*/”我要裂开了……真的好基础!!! intsearchInsert(int*nums,intnumsSize,inttarget){
  • 2024-03-23【力扣】268.丢失的数字
    题目描述给定一个包含[0,n]中n个数的数组nums,找出[0,n]这个范围内没有出现在数组中的那个数。示例1:输入:nums=[3,0,1]输出:2解释:n=3,因为有3个数字,所以所有的数字都在范围[0,3]内。2是丢失的数字,因为它没有出现在nums中。示例2:输入:nums=[0,
  • 2024-03-222367. 算术三元组的数目c
    intcount;voiddfs(int*nums,intnumsSize,intdiff,intindex,intpre,intnowcount){if(index>numsSize||nowcount>3)return;if(index==numsSize&&nowcount<3)return;if(nowcount==3){count++;return;}
  • 2024-03-1655. 跳跃游戏c
    intmax(inti,intj){if(i>j)returni;returnj;}boolcanJump(int*nums,intnumsSize){if(numsSize==1)returntrue;if(nums[0]==0)returnfalse;int*dp=(int*)malloc(sizeof(int)*numsSize);dp[0]=nums[0];intmaxn=dp[0]
  • 2024-03-16376. 摆动序列c
    intmax(inti,intj){if(i>j)returni;returnj;}intwiggleMaxLength(int*nums,intnumsSize){int**dp=(int**)malloc(sizeof(int*)*numsSize);for(inti=0;i<numsSize;i++)dp[i]=(int*)malloc(sizeof(int)*2);dp[0][0]=1,dp[0][1]=
  • 2024-03-16491. 非递减子序列c
    /***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[30];voiddfs(int**
  • 2024-03-1690. 子集 IIC
    /***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[20];intcmp(constv
  • 2024-03-15169. 多数元素c
    intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}intmajorityElement(int*nums,intnumsSize){qsort(nums,numsSize,sizeof(int),cmp);intcount=0,n=numsSize/2,max=nums[0];for(inti=1;i<numsSize;i++){if(nums[i
  • 2024-03-13239. 滑动窗口最大值c
    C语言没有优先队列库,如果自己实现的话在考试是不现实的。优先使用暴力简单的方法加稍微优化尽可能多的过例子。/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/intfindmax(int*nums,inthead,inttail){intmax=nums[head];for
  • 2024-03-101005. K 次取反后最大化的数组和c
    intlargestSumAfterKNegations(int*nums,intnumsSize,intk){intt[201]={0};intsum=0;for(inti=0;i<numsSize;i++){t[100+nums[i]]++;sum+=nums[i];}while(k>0){for(inti=0;i<201;i++){
  • 2024-03-1045. 跳跃游戏 IIc
    暴力DFS超时了。先放着把。intmin;voiddfs(int*nums,intnumsSize,intindex,intcount){if(index>=numsSize-1){if(count<min)min=count;return;}for(inti=nums[index];i>0;i--){dfs(nums,numsSize,index+i,count+1);
  • 2024-03-1055. 跳跃游戏c
    动态规划实在让人上瘾啊,虽然过程很难想,但是代码实现实在太简单了。intmax(inti,intj){if(i>j)returni;returnj;}boolcanJump(int*nums,intnumsSize){if(numsSize==1&&nums[0]>=0)returntrue;if(nums[0]==0)returnfalse;int*dp=(
  • 2024-03-1053. 最大子数组和c
    intmax(inti,intj){if(i>j)returni;returnj;}intmaxSubArray(int*nums,intnumsSize){if(numsSize==1)returnnums[0];int*dp=(int*)malloc(sizeof(int)*numsSize);//从0到i,以nums[i]结尾的最大连续字串dp[0]=nums[0];intx=dp[0];
  • 2024-03-10376. 摆动序列c
    动态规划yyds!虽然写不出来TTintmax(inti,intj){if(i>j)returni;returnj;}intwiggleMaxLength(int*nums,intnumsSize){intdp[1000][2]={0};//dp[i][j]表示到0-i为止的最大子序列,1表示最后是上升,0表示最后是下降if(numsSize==1)return1;
  • 2024-03-0947. 全排列 IIc
    我宣布我已经参透了套路,一次AC/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/int
  • 2024-03-0946. 全排列c
    出息了!一次AC/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[10];intvi
  • 2024-03-09491. 非递减子序列c
    复试的人真的搞心态啊,怎么能这么变态,刷题这么块。哭了。要是难一点的重复问题还是写for循环好点。/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSi
  • 2024-03-0978. 子集c
    leetcode官方解法实在是太绝了!!二刷的时候一定用上!/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercall
  • 2024-02-27209. 长度最小的子数组C
    滑动窗口的妙用!!intminSubArrayLen(inttarget,int*nums,intnumsSize){intsum=nums[0];//区间head到tail的和inthead=0,tail=0;intminn=numsSize;inttag=0;if(numsSize==0)return-1;while(head<=tail&&tail<numsSize){
  • 2024-02-27977. 有序数组的平方
    学习了下用qsort解决。/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}int*sortedSquares(int*nums,intnumsSize,int*returnSize){*returnSize=num
  • 2024-02-2634. 在排序数组中查找元素的第一个和最后一个位置C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*searchRange(int*nums,intnumsSize,inttarget,int*returnSize){*returnSize=2;int*a=(int*)malloc(sizeof(int)*2);a[0]=-1;a[1]=-1;inthead=0,