刷题总结
文章平均质量分 77
剑指offer、leetcode
我很懒但我很软乎
追风的人无所畏惧
展开
-
《剑指offer》菲波那切数列、旋转数组的最小数字、矩阵中的路径、机器人的运动范围
一、斐波那契数列(考点:递归与循环)题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解题思路:F(0)=0,F(1)=1,F(2)=F(1)+F(0),F(3)=F(2)+F(1)。...........class Solution {public: int Fibonacci(int n) {...原创 2020-02-14 23:20:34 · 183 阅读 · 0 评论 -
《剑指offer》:队列和栈
一、二叉树的下一个节点题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题思路:本题目应该分为两种情况1、该节点有右子树:(1)右子树有左子树,则遍历最尽头的左子树输出(2)右子树没有左子树,则输出右子树根节点2、该节点没有右子树,则应该判断改结点和根节点的关系:(1)若该节点是...原创 2020-02-12 23:56:27 · 129 阅读 · 0 评论 -
常用的shell语句
常用的shell原创 2023-03-21 17:07:15 · 180 阅读 · 0 评论 -
排序
leetcode&剑指offer原创 2023-02-17 20:29:54 · 509 阅读 · 0 评论 -
链表
LeetCode+剑指offer原创 2023-02-13 08:05:58 · 331 阅读 · 0 评论 -
哈希表
leetcode+剑指offer原创 2023-02-13 08:00:25 · 299 阅读 · 0 评论 -
数组
Leetcode+剑指offer:数组部分原创 2023-02-12 16:00:30 · 618 阅读 · 1 评论 -
位运算
位运算原创 2023-02-12 12:52:58 · 124 阅读 · 0 评论 -
《leetcode》:排序
1、3-sum-closest题目描述:给出含有n个整数的数组s,找出s中和加起来的和最接近给定的目标值的三个整数。返回这三个整数的和。你可以假设每个输入都只有唯一解。解题思路:首先对整个数组进行排序,然后使用滑动窗口的思想,由两边向里收缩窗口class Solution {public: /** * * @param num int整型vector * @param target int整型 * @return int整型 *原创 2020-07-12 19:21:54 · 297 阅读 · 0 评论 -
《LeetCode》查找
1、container-with-most-water题目描述:给定n个非负整数a1,a2,…,an,其中每个数字表示坐标(i, ai)处的一个点。以(i,ai)和(i,0)(i=1,2,3...n)为端点画出n条直线。你可以从中选择两条线与x轴一起构成一个容器,最大的容器能装多少水?注意:你不能倾斜容器class Solution {public: /** * * @param height int整型vector * @return int整型原创 2020-07-16 23:48:37 · 122 阅读 · 0 评论 -
《leetcode》华为技术面试题库
No.820 单词的压缩编码题目描述:给定一个单词列表,我们将这个列表编码成一个索引字符串S与一个索引列表A。例如,如果这个列表是["time", "me", "bell"],我们就可以将其表示为S = "time#bell#"和indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串S中索引的位置开始读取字符串,直到 "#" 结束,来恢复我们之前的单词列表。那么成功对给定单词列表进行编码的最小字符串长度是多少呢?解题思路:目标是保留所有不是其他单词后缀的单词,...原创 2020-07-28 00:21:49 · 2951 阅读 · 0 评论 -
力扣 Hot 100
持续更新中~~原创 2020-07-19 00:27:32 · 486 阅读 · 0 评论 -
《剑指offer》递归+回溯
No.62 圆圈中最后剩下的数字(约瑟夫环问题)题目描述:0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。解题思路一:先上一个最原始也是超时了的办法,使用vector数组实现循环链表,中间感觉因为使用了erase函数超时了。class Solution .原创 2020-08-25 22:46:53 · 137 阅读 · 0 评论 -
《剑指offer》:位运算的巧用
一、不用加减乘除做加法题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解答思路:使用二进制的方法进行求解。第一步:各位相加不进位<=>异或 第二步:进位<=>位与运算+左移 第三步:求和class Solution {public: int Add(int num1, int num2) { int sum,carry; do { su原创 2020-06-12 20:17:48 · 180 阅读 · 0 评论 -
《剑指offer》:滑动窗口
一、和为s的连续正数序列题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!解题思路:使用滑动窗口的想法,通过等差序列的求和公式算出每次窗口中数字的和,与给定和对比。若大于给定值,则窗口从左侧收一下;若原创 2020-06-08 10:37:25 · 222 阅读 · 0 评论 -
《剑指offer》:贪心算法
一、剪绳子题目描述:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。解答思路:目标是求解最优解,整体问题的最优解是依赖各个子问题的最优解,这时可以用动态规划来解决。当绳子长度为2时,只可能简称长度为1的两段,所以f(2)=1;当绳子长度为3的时原创 2020-06-08 09:00:22 · 249 阅读 · 0 评论 -
《剑指offer》:链表
一、反转链表· 题目描述 输入一个链表,反转链表后,输出新链表的表头。· 解题思路 本题应该借助3个指针来进行操作,其中pNext指针负责保存下一个结点,pPre负责保存需要重新插入的结点,pNode进行遍历。需要注意的是要想到特殊情况时的处理对策: ①输入的头结点是NULL时 (特殊输入测试) ②链表只有1个结点时(功能测试...原创 2019-02-21 13:38:57 · 127 阅读 · 0 评论 -
《剑指offer》:动态规划
动态规划算法的基本思想 将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解。动态规划算法将问题的解决方案视为一系列决策的结果BM62 斐波那契数列链接:斐波那契数列题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39。思路...原创 2020-04-27 23:55:51 · 330 阅读 · 0 评论 -
字符串
剑指offer&Leetcode原创 2020-04-25 22:36:02 · 236 阅读 · 0 评论 -
树
一、重建二叉树题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:应用递归方法,首先通过前序遍历结果在中序遍历序列中查找相应元素。/** * Definition for binary...原创 2020-04-25 22:35:51 · 215 阅读 · 0 评论