摘要:
题目描述 环形路上有n个加油站,第i个加油站的汽油量是gas[i]. 你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。 求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回 阅读全文
摘要:
题目描述 现在有一个这样的链表:链表的每一个节点都附加了一个随机指针,随机指针可能指向链表中的任意一个节点或者指向空。 请对这个链表进行深拷贝。 题目分析: 如果要做到深拷贝,分一下三个步骤:1.分别创建新链表的节点,插入到旧表中 2.根据旧表中的节点复制随机指针 3.剥离旧表和新表,返回新表的头结 阅读全文
摘要:
题目描述 对于一个给定的链表,返回环的入口节点,如果没有环,返回null 拓展: 你能给出不利用额外空间的解法么? 题目分析: 这属于常规问题,利用快慢指针获取环的入口节点。 代码如下: 1 ListNode *detectCycle(ListNode *head) { 2 if(head == n 阅读全文
摘要:
题目描述 求给定的二叉树的后序遍历。 例如: 给定的二叉树为{1,#,2,3}, 1↵ ↵ 2↵ /↵ 3↵ 返回[3,2,1]. 备注;用递归来解这道题太没有新意了,可以给出迭代的解法么? 题目分析: 这道题属于常规题,就不讲了。 代码如下: 1 vector<int> postorderTrav 阅读全文
摘要:
题目描述 将给出的整数x翻转。 例1:x=123,返回321 例2:x=-123,返回-321 你有思考过下面的这些问题么? 如果整数的最后一位是0,那么输出应该是什么?比如10,100 你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的 阅读全文
摘要:
题目描述 在不使用额外的内存空间的条件下判断一个整数是否是回文数字 提示: 负整数可以是回文吗?(比如-1) 如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制 你可以将整数翻转。但是,如果你做过题目 反转数字 你会知道将整数翻转可能会出现溢出的情况,你怎么处理这个问题? 题目分析 阅读全文
摘要:
题目描述 给定n个非负整数a1,a2,…,an,其中每个数字表示坐标(i, ai)处的一个点。以(i,ai)和(i,0)(i=1,2,3...n)为端点画出n条直线。你可以从中选择两条线与x轴一起构成一个容器,最大的容器能装多少水? 注意:你不能倾斜容器 例如: 输入 [1,8,6,2,5,4,8, 阅读全文
摘要:
按我的看法来说这两个题实在没啥意思,所以写一块了。需要了解一下罗马数字和整数之间的转换规则即可。 leetcode 136: 题目描述 请将给出的罗马数字转化为整数 保证输入的数字范围在1 到 3999之间。 代码如下: 1 int romanToInt(string s) { 2 std::map 阅读全文
摘要:
题目描述 给定一个数组和一个值,使用就地算法将数组中所有等于这个值的元素删除,并返回新数组的长度。 元素的顺序可以更改。你不用去关心大于当前数组长度的空间里面存储的值 题目分析: 返回只需要返回新数组的长度,并且元素顺序可以改变,因此如果数组中的值等于elem,可以替换成任何值,数组长度要减一。 代 阅读全文
摘要:
题目描述 给出一个用二维矩阵表示的图像 返回该图像顺时针旋转90度的结果 扩展: 你能使用原地算法解决这个问题么? 题目分析: 可以将矩阵先通过右上左下对角线翻转,再沿水平线上下翻转。如下图所示: 代码如下: 1 void rotate(vector<vector<int> > &matrix) { 阅读全文