剑指LeetCode刷题
Lann1st3r
这个作者很懒,什么都没留下…
展开
-
编程练习:重排链表|难度:中等
将给定的单链表L: L 0→L 1→…→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→…要求使用原地算法,并且不改变节点的值 例如: 对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}.我的思路是:先找到中间结点将后半段翻转将后半段节点依次插入这几项的实现方法为:快慢指针。快指针一次走两步,慢指针一次走一步...原创 2019-09-24 22:10:35 · 141 阅读 · 0 评论 -
编程练习:整数翻转|难度:简单
将给出的整数x翻转。例1:x=123,返回321例2:x=-123,返回-321你有思考过下面的这些问题么?如果整数的最后一位是0,那么输出应该是什么?比如10,100你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)。...原创 2019-09-26 19:12:57 · 569 阅读 · 0 评论 -
编程练习:只出现一次的数字i|难度:简单
现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。注意:你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?异或的性质:交换律:a ^ b ^ c <=> a ^ c ^ b任何数于0异或为任何数 0 ^ n => n相同的数异或为0: n ^ n => 0该数组一定是奇数个,所有数异或完了都...原创 2019-09-26 19:45:16 · 142 阅读 · 0 评论 -
编程练习:买股票的最好时机(系列
假设你有一个数组,其中第i个元素表示某只股票在第i天的价格。设计一个算法来寻找最大的利润。你可以完成任意数量的交易(例如,多次购买和出售股票的一股)。但是,你不能同时进行多个交易(即,你必须在再次购买之前卖出之前买的股票)。完成任一次,即假设我抓住了所有的涨,并求和class Solution {public: int maxProfit(vector<int> &...原创 2019-09-27 12:32:18 · 978 阅读 · 0 评论 -
编程练习:两数相加|难度:中等
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...原创 2019-09-29 22:52:31 · 264 阅读 · 0 评论 -
编程练习:两数之和|难度:简单
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一:暴力法,时...原创 2019-10-08 22:19:41 · 206 阅读 · 0 评论