自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第四十一天 | 343. 整数拆分 、96.不同的二叉搜索树

解题思路:贪心法就是每次拆分成n个3,如果剩下是4,则保留4,然后相乘。需要数学证明。

2023-12-10 21:40:54 128

原创 代码随想录算法训练营第九天 | 28. 实现 strStr()、459.重复的子字符串、字符串总结、 双指针回顾

字符串总结。

2023-12-10 21:35:52 121

原创 代码随想录算法训练营第三十九天 | 62.不同路径、63. 不同路径 II

解题思路:dp数组(dp[i][j])及其下标的含义是走到ixj的这个位置有多少种路径。递推公式为:dp[i][j] = dp[i][j-1] + dp[i-1][j] 而不是max(dp[i][j-1] + 1, dp[i-1][j] + 1),因为我们不是算步数而是算有多少路径可以到这里;初始化的话我们需要初始化dp[i-m][0] = 1和dp[0][j-n] = 1;因为dp[0][0]到dp[0][n]和dp[m][0]都只有一条。遍历顺序则是从左往右开始遍历,一路往下。

2023-11-28 21:41:03 694

原创 代码随想录算法训练营第三十八天 | 动态规划理论基础、 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

动态规划理论基础文章链接:动态规划理论基础思想:动态规划五部曲-确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组Leetcode 509.斐波那契数题目链接:509.斐波那契数递归法解题思路:递归法比较简单就不说了,就是按着他给的题意初始化,然后设计跳出条件,并进入递归动态规划解题思路:首先确定dp数组以及下标的含义,dp数组的含义就是斐波那契数列,下标为i就是第i个斐波那契数。递推公式就是dp[i] = dp[i -

2023-11-27 16:11:01 116

原创 代码随想录算法训练营第三十七天 | 738.单调递增的数字、968.监控二叉树、总结

贪心算法总结。

2023-11-26 17:56:58 60 1

原创 代码随想录算法训练营第三十六天 | 435. 无重叠区间 、763.划分字母区间、56. 合并区间

解题思路: 我们要返回的答案是移除区间的最小数量使得区间没有重叠,那么其实我们可以先排序区间的right;然后如果我们遍历一次数组,计数无重叠区间的数量有多少,然后返回数组长度减去无重叠区间的数量即可得出需要移除区间的最小数量。

2023-11-23 21:09:11 53

原创 代码随想录算法训练营第三十五天 | 860.柠檬水找零、406.根据身高重建队列、 452. 用最少数量的箭引爆气球

解题思路:思路就是将零钱存进来,然后如果没有零钱的话则return false;足够找零的话则return true;

2023-11-22 18:46:42 70 1

原创 代码随想录算法训练营第三十四天 | 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

解题思路:进行两次贪心,第一次是我们对负数最小的进行取反(取得最大化的正数),第二次是已经对所有的负数进行取反后,k还有剩余,那么则选择正数最小的进行反复取反。

2023-11-20 10:12:22 66 1

原创 代码随想录算法训练营第三十二天 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

解题思路:我们去贪心求每天的正利润即可,负利润丢掉;整个区间每天的正利润加在一起就是总利润了。

2023-11-18 12:42:25 96 1

原创 代码随想录算法训练营第三十一天| 贪心算法理论基础、455.分发饼干、376.摆动序和、53.最大子序和

思想:贪心没有套路,说白了就是常识性推导加上举反例。贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

2023-11-18 11:24:58 82 1

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、 19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II、总结

链表总结篇经典题目:虚拟头结点、链表的基本操作、反转链表、删除倒数第N个节点、链表相交、环形链表。

2023-11-15 18:02:25 54 1

原创 代码随想录算法训练营三天 |链表理论基础 Leetcode 203.移除链表元素、Leetcode 707.设计链表、Leetcode 206.反转链表

思想:链表是线性表的链式表示。

2023-11-15 13:00:00 56 1

原创 代码随想录算法训练营第十三天 | Leetcode 239. 滑动窗口最大值、 Leetcode 347.前 K 个高频元素、栈与队列总结

思路:自己做法有点忘了,粘的之前做的最大值过来的。。。

2023-10-23 21:37:58 68 1

原创 代码随想录算法训练营第十一天 | Leetcode 20.有效的括号、Leetcode 1047.删除字符串中的所有相邻重复项、150.逆波兰表达式求值

思路:遇到左括号时push对应的右括号,如果push左括号进栈的话后续对于判断右括号是很麻烦的。

2023-10-22 19:29:03 76 1

原创 高精度计算

所谓的高精度就是指两个大数做加减乘除,也会有高精度对低精度做加减乘除,但是高精度的话我们一般是指10^6。那大数该如何存储呢?如果大家去拿int是存储不下来,用long或者long long或许能存下来,但是两个long long极限的数加起来的话结果该如何存储呢?那我们的解决方法就是拿数组把大数的每一个位都存储起来。那思考另外一个问题:就是我们该把高位存在数组第0位还是把低位存在数组第0位。那答案是我们应该把低位存在数组第0位,也就是把个位存在数组第0位,往后以此类推;

2023-10-22 14:46:22 65 1

原创 代码随想录算法训练营第十天 | 栈与队列理论基础、Leetcode 232.用栈实现队列、Leetcode 225.用队列实现栈

思路:两个队列第二个队列只是用来备份而已,一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。思路:一个栈当作入栈,一个栈当作出栈 或者 只操作一个栈,另外一个栈当备份即可。

2023-10-20 21:22:14 92 1

原创 代码随想录算法训练营第八天 |344.反转字符串、 541. 反转字符串II、剑指Offer 05.替换空格、 151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串

各个题的思路就先不写啦,今天太累了。

2023-10-18 19:42:04 62

原创 代码随想录算法训练营七天 | Leetcode 454.四数相加II、Leetcode 383.赎金信、Leetcode 15.三数之和、Leetcode 18.四数之和

思路:通过哈希表记录a+b,并在哈希表找寻0 - (c+d) 是否等于 a + b,那么就可以找到四数相加的答案(i, j, k, l),这题于四数之和的区别在于因为它没有要求去重。所以可以用哈希法来做。

2023-10-17 16:18:45 127

原创 代码随想录算法训练营第六天 |哈希表理论基础、Leetcode 242.有效的字母异位词、Leetcode 349. 两个数组的交集、Leetcode 202. 快乐数、Leetcode1. 两数之和

最主要思想为。但是哈希表也是,因为我们要使用额外的数组,set或是map来存放数据,才能实现快速的查找。

2023-10-16 20:58:37 94 1

转载 引用与指针的比较

引用是C++中的概念。引用的一些规则如下:引用被创建的同时被初始化(指针则可以在任何时候被初始化)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)一旦引用被初始化,就不能改变引用的关系。(指针则可以随时改变所指的对象)指针比引用强大许多,但是带来的风险也相对大了很多。那么我们如果只需要做一些很小的东西,例如借用一下其他对象,那么我们只需用引用而已,并不需要动用到指针....

2021-09-16 19:51:00 127

原创 实验8-1-7 数组循环右移 (20 分)

本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a​0​​a​1​​⋯a​n−1​​)变换为(a​n−m​​⋯a​n−1​​a​0​​a​1​​⋯a​n−m−1​​)(最后m个数循环移至最前面的m个位置)。函数接口定义:int ArrayShift( int a[], int n, int m );其中a[]是用户传入的数组;n是数组的大小;m是右移的位数。函数ArrayShift须将循环右移后的数组

2021-05-21 19:52:22 660

原创 实验11-2-1 建立学生信息链表 (20 分)

void input() { struct stud_node* currentptr; int num = 0; scanf("%d",&num); while(num != 0){ currentptr = (struct stud_node*)malloc(sizeof(struct stud_node)); if(currentptr != NULL) { scanf("%s",&currentptr->name); scanf("%d",&...

2021-05-21 18:35:25 312

原创 实验1-2 Welcome to You! (5分)

#include<stdio.h>int main(){ printf("Welcome to You!"); return 0;}

2020-10-19 00:11:32 264

原创 实验1-1 Hello World! (5分)

#include<stdio.h>int main(){ printf("Hello World!\n");}在PTA 我做的第一道编程题北邮无名学子

2020-10-19 00:09:12 208

空空如也

空空如也

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

TA关注的人

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