随笔分类 - LeetCode
摘要:一、问题描述 给出一个数组,按照字典顺序找出下一个排列。如果给出是最大的,则返回最小 例子:123,下一个比123大的排列是132 321,这是最大的数,返回最小的数123 115,下一个比112大的数是152 二、问题解决 最终要的是这个寻找下一个排列数的思路。 举一个例子,假设有如下数组: 第一
阅读全文
摘要:一、问题描述 嗯,题目很难理解。 我按我的理解翻译一下:words中有“foo”和“bar”,我们就在s中寻找“foobar”或“barfoo”,返回它们在s中出现的第一个位置。(题目给出words中每一个字符串长度是相等的) 假如说words中有3个字符串,则在s中寻找寻找words中3个字符串的
阅读全文
摘要:一、问题描述 实现两个int数的相除,返回它们相除的int值,但是不能使用乘法、除法、和mod运算。 二、问题解决 最开始能想到的方法就是不断用被除数去减除数,等到被除数小于0的时候相减了多少轮就是两数相除的int值,但是一个很大的数除以一个很小的数可能会超时,实验一下,果然会超时。 要解决这个问题
阅读全文
摘要:一、问题描述 实现子串寻找,给定一个str1和str2,在str1中寻找str2第一次出现的位置,返回第一个字符在str1中的位置,如果没有找到则返回-1。 例子:haystack = "hello", needle = "ll",返回2。 二、问题解决 对,没错,这就是KMP算法。 这里写了个简单
阅读全文
摘要:一、问题描述 给定一个数组v和一个数n,要求删除数组中所有和n向等的数,并且将不为n的数放入数组前面,返回数组长度。 例子:v={3,2,2,3},n=3,返回2,且v的前两项必须为两个2 二、问题解决 这个题目和26题其实是一模一样的,看看26题吧。 三、问题反思 这个题明明和26题一样,写的时候
阅读全文
摘要:一、问题描述 给定一个排过序的数组,将他们重复的元素移到最后(标准库中unique的效果),返回不重复元素的个数 例子:给定一个数组{1,1,2},将数组变为{1,2,1},返回值为2 二、问题解决 思路还是很简单,记录两个位置,第一个位置向前遍历,每次遇到不等的数就将他位置的数移到后一个位置上,然
阅读全文
摘要:一、问题描述 给定一个链表,要求换他们的一对值,要求空间复杂度是常量,不能更改链表节点的值,只能更改指针。 例子:给定一个链表,如1->2->3->4,应该返回2->1->4->3。 二、问题解决 看到题目大概都能明白怎么去解,关键是如何转化成简单的代码描述。复习一定看一看代码,代码中,为了减去判断
阅读全文
摘要:一、问题描述 给一个数字n,求出所有可能的括号组合 例子:给定数字n,输出如下 ()()() ()(()) (())() (()()) ((())) 二、问题解决 关键在于理解什么样的括号顺序是正确的,如何用程序表示出来。右括号的数量不能大于左括号,依次遍历所有可能,选出符合的。 三、问题思考 本题
阅读全文
摘要:一、问题描述 给定两个链表,将他们合并成一个,其中节点值要按顺序排列。 例子:给定链表1为1->2->4,链表2为1->3->4。合并之后链表为1->1->2->3->4->4 二、问题解决 思路一: 每次比较两个头结点的值,看谁的小,依次将他们都串起来 代码中用到一个巧妙的办法,先初始化了一个为-
阅读全文
摘要:一、问题描述 给定一个字符串,字符串中只包含'(', ')', '[', ']', '{', '}',判断该字符串是否符合算术式括号的顺序。 例子:不符合的情况比如说“([)]”,符合的情况比如说“()” 二、问题解决 应该是很简单的一个问题了,使用一个栈,在遇到'(','[','{'时入栈,在遇到
阅读全文
摘要:一、问题描述 给定一个链表和一个数n,要求删除该链表的倒数第n个节点。给定n一定是合理的,只遍历一遍 例子:给定链表1->2->3->4->5,n=2,执行删除操作之后链表变成1->2->3->5。 二、问题解决 这种遍历一遍找出第几个、倒数第几个、中间节点的题,都是通过两个节点来解决,本题中,先让
阅读全文
摘要:一、问题描述 给定一个数组S,和一个int类型的数target,在S中寻找四个数,这四个数之和为target。返回一个vector<vector<int>> 例子:S={1, 0, -1, 0, -2, 2},target = 0.返回结果为{{-1,0,0,1},{-2,1,1,2},{-2,0,
阅读全文
摘要:一、问题描述 给定一个数字组成的string,其中每一个数字代表着下图的几个字符,要求输出他们的全排列 例子:给定字符串“23”,输出结果为["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] 二、问题解决 这个问题很想数据结构里面的输出一个字
阅读全文
摘要:LeetCode-11-Container With Most Water 一、问题描述 给定一个数组,在数组中找到两个位置,使他们的高和底形成的容器装最多的水。 例子:数组为{ 1 ,8 ,6 ,2, 5 ,4 ,8, 3 ,7 },若选取头和尾两个点,他们装的水为如下图 二、问题解决 从两边想中
阅读全文
摘要:LeetCode-16-3Sum Closest 一、问题描述 给一个数组S,和一个目标数target,在S中找出三个数的和与target的差最小。返回这3个数字的和 例子:S={-1 2 1 -4},target=1,返回2(-1+2+1=2) 二、问题解决 思路:模仿第15题的思路,确地一个i后
阅读全文
摘要:LeetCode-15-3sum 一、题目描述 给定一个int类型的数组,找出其中的3个元素a,b,c,使a+b+c=0。找出所有的这样的三元组 exapmle: 给定数组:S = [-1, 0, 1, 2, -1, -4] 返回值: [ [-1, 0, 1], [-1, -1, 2] ] 二、题目
阅读全文
摘要:LeetCode-13-roman-to-integer 一、问题描述 将罗马数字转化成整数,数字范围在1到3999之间。 这题比较坑的是罗马数字,具体描述可以参见百度百科:https://baike.baidu.com/item/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%
阅读全文
摘要:LeetCode-1-two-sum 一、问题描述 给定一个int类型的数组nums,和一个int类型的target。在数组nums中找到两个数,这两个数之和等于target,返回这两个数的下标。(可以假定只有一对这样的数) 例子: nums = [2, 7, 11, 15], target = 9
阅读全文
摘要:一、问题描述 给定一个vector<string>,求出vector中所有字符串的最大公共前缀 例子: 对于以上v,输出结果为"124d2" 二、解决思想 令result等于第一个字符串,拿result和后面的所有字符串比较,将result截取为result和字符串相同的前缀部分,便利一遍,即可得到
阅读全文
摘要:一、题目 判断int类型的数是不是回文型,例如,123321是回文型 题目链接:https://leetcode.com/problems/palindrome-number/ 注意:负数都不是回文型 二、解答 思路一:将数字拆开,每个位上的数字按序存放到vector中,最后再从头向两边逼近判断 思
阅读全文

浙公网安备 33010602011771号