算法练习记录
kininee
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 24. 反转链表
【代码】剑指 Offer 24. 反转链表。原创 2023-03-21 10:47:11 · 92 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
【代码】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面。原创 2023-03-21 10:15:27 · 73 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
这题看题解说要考虑大数,应该挺难的,下次再看吧。原创 2023-03-17 10:56:06 · 65 阅读 · 0 评论 -
剑指 Offer 14- I. 剪绳子
还有数论的方法,暂停一下吧。原创 2023-03-17 14:34:39 · 73 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
无符号右移的意思是右移时不考虑符号问题,即无论右移正数还是负数,其最高位都是补0。不同于普通的“>>”移位操作,使用“>>”右移时,是以符号扩展原则进行右移,即在右移过程中它将保持原有数据的正负号不变,简单地说,就是在右移正数时高位补0、右移负数时则高位补1。在java中,提供了无符号右移操作符“>>>”,与普通的“>>”区分开来。但是在c++中并没有这样的操作符,在c++中实现的方式也很简单,先将拟进行无符号右移的数转换成无符号类型,然后执行普通右移即可。原创 2023-03-16 20:08:06 · 72 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
其实思路很简单,但是实现总是有很多错误。原创 2023-03-16 19:52:44 · 56 阅读 · 0 评论 -
剑指 Offer 19. 正则表达式匹配
题解说分为不看和看两种情况,我一开始以为是if else关系。不是对立的两种情况-我一开始是这样理解的,对立的两种情况。不看ac acb* —ac(b。其实是两个if 就是ba baa*看 acb acb*一开始不明白为什么要用|=不看就是 当初 ba (a。原创 2023-03-14 11:13:03 · 67 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
对于二分来说,首先要确定寻找的是哪个元素!原创 2023-03-12 10:40:47 · 66 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
然后看了第二遍文章,就想到了递归的做法,先根据前序找到根节点A,然后在中序里面找到A的位置,A左边就是左子树,A右边就是右子树,然后再继续递归。看了题解,也就是文章1,首先是可以用map存放中序的位置,便于查找(这个我本来是想用查找函数的)虽然明白了思路,但是写代码还是很困难,本来是想递归应该是可以用循环解决的,但是没做出来。然后就是左子树右子树的索引要想明白,最后就是递归出口要写好。一开始看到这题,完全忘了前序中序遍历。原创 2023-03-11 11:19:13 · 57 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
【代码】剑指 Offer 10- II. 青蛙跳台阶问题。原创 2023-03-09 11:09:03 · 62 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
还有就是,用vector的时候,当dp[0]没有赋值的时候,是不可以用dp[0]的。另外注意每次新结果都要取余,并且a%c +b%c!一开始不知道怎么写,看到题解知道要自底向上。原创 2023-03-07 12:27:51 · 65 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
然后写代码的时候,有个测试用例是[] ,需要判断矩阵为空,可以用vector.begin()==vector.end()判断。我一开始是想从左上角走,比target大就,退一步,然后向下走,下面以右上角为起点感觉更好。如果当前位置元素比target小,则row++如果越界了还没找到,说明不存在,返回false。如果当前位置元素比target大,则col–如果相等,返回true。原创 2023-03-05 10:32:20 · 64 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。在 C++ 语言中, string 被设计成「可变」的类型,因此可以在不新建字符串的情况下实现原地修改。数组扩容加双指针(我一开始没有想到扩容)双指针从后往前遍历。原创 2023-03-03 12:21:18 · 59 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
头指针是指向链表中的第一个结点的指针,如果有头结点,那么头指针所指结点为头结点,否则为首元结点。应该就是指链表中存储的第一个数据元素的结点。首元结点就是指链表中存储的第一个数据元素的结点,就是结点Li。头结点是在首元结点之前附加的一个点,其指针域指向首元结点。原创 2023-03-03 10:02:08 · 70 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
【代码】剑指 Offer 03. 数组中重复的数字。原创 2023-02-28 10:23:47 · 44 阅读 · 0 评论 -
求出n以内的所有素数
素数筛选法蓝桥杯经典模板里面提到了这个方法https://blog.csdn.net/weixin_41793113/article/details/88762953如下图然后https://blog.csdn.net/liukehua123/article/details/5482854这篇文章比较详细的讲了筛选法方法,博主有个别错误可以原谅对于这上面提到的一个问题,就是创建比变量大的数,要用到动态内存我看了下面这篇http://c.biancheng.net/view/223.html原创 2021-01-31 22:18:50 · 967 阅读 · 0 评论 -
蓝桥杯-学霸迷宫问题
问题描述学霸抢走了大家的作业,班长为了帮同学们找回 作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨 刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路 线。输入格式第一行两个整数n, m,为迷宫的长宽。 接下来n行,每行m个数,数之间没有间隔,为0或1中的一个。0表示这个格子可以通过,1表示不可以。假设你现在原创 2021-02-07 01:06:20 · 306 阅读 · 0 评论 -
蓝桥杯-幂方分解
任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 22+2+20 (21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=210 +28 +25 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0))原创 2021-02-07 02:23:13 · 396 阅读 · 0 评论 -
英雄--基础算法学习day03
第一题第一次用模拟的方法,注意不可以int[n]={0} n是传参第二题模拟第三题原创 2022-04-16 18:52:14 · 226 阅读 · 0 评论 -
英雄--基础算法学习day04
第一题第二题第三题第四题第五题第六题第七题原创 2022-04-14 21:48:48 · 171 阅读 · 0 评论 -
英雄--基础算法学习day01&&day02
第一题第一次,做的时候只想到for循环了,没有想到递归第二次,用递归和if第三次,递归和逻辑符号由于终止条件是n为01.如果n为0,就不会执行后面的表达式2.n+=sumNums(n-1)是先执行=右边的表达式,所以n的变化对后面的sumNums(n-1)没有影响还有快速乘的方法,以后写第二题第一次第三题第一次快速乘的思想...原创 2022-04-12 13:28:57 · 182 阅读 · 0 评论