- 博客(19)
- 收藏
- 关注
原创 寒假每日总结
给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。
2024-02-23 10:47:19
219
原创 寒假每日总结
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。
2024-02-21 22:42:46
403
原创 寒假每日总结
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。int value;int t=9;// 目标和int i;for(i=0;i<4;i++){if(hash[t-nums[i]].key==0){ // 如果所需的匹配元素哈希表中没有// 将当前遍历元素存入哈希表。
2024-02-20 23:19:32
393
1
原创 寒假每日总结
哈希表是根据关键码的值而直接进行访问的数据结构。可以理解为数组是一张哈希表,关键码是数组的索引下标,然后通过下标直接访问数组中的元素。哈希表一般是用来快速判断一个元素是否出现集合里。
2024-02-18 21:52:46
405
1
原创 寒假每日总结
/设置虚拟头节点方便进行代码的添加与删除操作= NULL){// tmp指针指向所需删除的元素空间// 将cur指向的元素中的next重新指向cur下下个元素(cur下个元素即所需删除的元素)free(tmp);// 释放需要删除的元素空间else{// cur指向下一个元素/ / 头指针重新指向防止之前的循环删除了头元素的情况/ / 释放虚拟指针。
2024-02-15 21:47:14
343
1
原创 寒假每日总结
while(h>=t&&nums[arr[t]]<=nums[i]){ // 当队列有元素且尾元素大小小于当前指向元素大小。else if(ch[i]==ch[j]){ // 直接让左括号变为右括号方便判断。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。if(q[h]<i-k+1){ // 当头指针元素不在滑动窗口内时。
2024-02-14 21:18:42
1602
1
原创 寒假每日总结
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。
2024-02-07 21:04:07
565
1
原创 寒假每日总结
/ /特判元素数量为一时肯定能走到;for(i=0;i<=cover;i++){/ / 在当前元素能走到的最大位置与当前覆盖位置进行比较;
2024-02-05 20:39:33
1326
1
原创 寒假每日总结
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。
2024-02-02 22:28:28
255
原创 寒假每日总结
普通的01背包做法是通过开创一个二维数组来记录不同物品不同背包容量下的最大价值进而逐步推导。但是如果题目只要求求出要求的最大价值而不需要输出各种最大价值以及这些最大价值下所装的物品,我们可以对二维数组优化缩小为一维数组dp。首先观察核心代码:这段代码运算我们只利用了二维数组前一行的数据进行推断,所以我们可以在遍历一行最大价值后,下一行最大价值直接在当行的最大价值下进行赋值运算。即:dp[ j ]=max( dp[ j ],dp[ j - q[ i ].weight ]+q[ i ].val );
2024-02-01 22:01:12
392
1
原创 寒假每日总结
贪心算法核心理念是用局部最优解来算出全局最优解。贪心算法没有模板套路,只能通过不同题目进行不同的贪心模拟。贪心题目难度很容易两极分化,有时候会是常识性题,甚至没意识到是贪心算法。
2024-01-31 22:45:28
331
1
原创 寒假每日总结
链表相比数组而言,不会受到类似数组大小的限制,但是链表访问数据只能将链表整体遍历。首先需要利用结构体定义一个data数据和next指针( typedef用来对结构体重命名 )接着定义结构体head,tail头尾指针以及p内部指针。接着传入n个数据,就像是火车车厢通过链条连接一样,这些数据通过next指针前后依次指向下一个相邻数据的地址,p指针通过循环不断更新数据。最后利用p指针,首先将p指针==头指针head的next指针,接着利用每个数据的next!=NULL进行循环输出。
2024-01-30 21:54:47
314
原创 寒假每日总结
新手入门:有序数组的平方定义两个指针下标分别指向数组的第一个与最后一个元素,由于本身为有序数组所以通过下标元素的大小比较,将较大的元素存储到新的数组中并移动较大元素的下标,形成一个全新的有序数列,时间复杂度为O(n)。
2024-01-26 22:51:36
321
1
原创 寒假每日总结
细节方面:[left , right](针对左闭右闭区间) [left , right) (针对左闭右开区间)right=mid;left=mid+1;left=mid+1;
2024-01-25 20:59:00
404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人