摘要:
一:解题思路 一:这个题目是将链表右边的结点循环移动到链表的左边来。 1.将链表首位相连,移动次数为K,K=K%N (N为链表的长度)。 2.然后,再找新的链表的结束尾结点时,需要从链表头部走N-K-1步,即可以找到链表的新的尾部结点。 二:如果将这个题目改编一下,将链表左边的结点循环移动到链表的右 阅读全文
posted @ 2020-04-14 21:11
repinkply
阅读(150)
评论(0)
推荐(0)
摘要:
一:解题思路 Time:O(n),Space:O(1) maxValue为最远可以跳到的距离。 1.如果当前的可以跳到的最远距离已经到底了末尾,或者已经超过末尾的,直接返回true。 2.如果当前下标已经超过最远可以到达的距离,直接返回false。 3.不断更新最远可以跳到的距离。 二:完整代码示例 阅读全文
posted @ 2020-04-14 20:47
repinkply
阅读(147)
评论(0)
推荐(0)
摘要:
一:解题思路 定义三个游标,p2,p3,p5,分别指向用来乘以2,3,5中的数组元素,然后取其最小值,加入到丑数数组中来。 Time:O(n),Space:O(n) 二:完整代码示例 (C++版和Java版) C++: class Solution { private: int min3(int a 阅读全文
posted @ 2020-04-14 20:25
repinkply
阅读(166)
评论(0)
推荐(0)
摘要:
一:解题思路 比如给我们的数组为:218421,那么下一个全排列为:221148。记住这个例子,根据这个例子来做这个题目。 Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: void nextPermut 阅读全文
posted @ 2020-04-14 18:10
repinkply
阅读(157)
评论(0)
推荐(0)
摘要:
一:解题思路 Time:O(n*log(n)),Space:O(log(n)) 和之前做过的合拼K个链表的第二种方法有点类似,采用归并的思想来做。就是不断的把链表切半,然后递归的处理这2条链表。然后再将这2条排序好的链表合并起来就行。 二:完整代码示例 (C++版和Java版) C++: class 阅读全文
posted @ 2020-04-14 17:27
repinkply
阅读(136)
评论(0)
推荐(0)

浙公网安备 33010602011771号