- 博客(7)
- 收藏
- 关注
原创 7. Reverse Integer
题目链接7. Reverse Integer思考过程: 这题比较简单,立刻能想到的解法也比较多,难点在于判断溢出,我所使用的方法是在发现整数长度将要达到可能出现溢出的时候进行特殊处理。细节思考: x=0要考虑,将x转成正数计算的时候,要考虑的是INT_MIN转成正数会溢出。参考代码:int reverse(int x) { if (x == INT_MIN || !x)
2017-02-10 21:50:05
129
原创 6. ZigZag Conversion
题目链接6. ZigZag Conversion思考过程:P A H N A P L S I I G Y I R 以PAYP为一个单位,计算一共有几个完整得单位,以及余下几个, 然后分成三个部分进行计算,即第一行,中间行,以及最后一行。细节思考:主要是要算清楚步长,另外一点坑就是题目其实要求
2017-02-10 21:43:34
151
原创 5. Longest Palindromic Substring
题目链接5. Longest Palindromic Substring思考过程:这题首先考虑最简单的暴力方法,即遍历一遍字符串,以每个字符为中心计算所能构成的最长回文串。这种方法的复杂度为O(N^2), 然而题目明确说明字符串长度不大于1000,所以O(N^2)复杂度是可以接受的。。所以我就用了这么暴力的方法。。。。。细节思考:以某个字符为中心的时候要考虑奇数元素个数的回文和偶数元素个数的回文,这
2017-02-10 21:27:13
170
原创 4. Median of Two Sorted Arrays
题目链接4. Median of Two Sorted Arrays思考过程:这题最简单的想法是把两个数组组合成为一个数组来算,这样的复杂度为O(M+N),并不满足题目要求。 根据题目提示复杂度应该为O(log(m + n )) ,数组又是有序的,那么我们可以推测此题需要进行的是二分法,即我们的算法最坏情况下每一步都得使得问题规模减半。 想到在每一步都能使得问题规模减少一半,我们肯定需要用到某些
2017-02-10 21:09:56
188
原创 3. Longest Substring Without Repeating Characters
题目链接3. Longest Substring Without Repeating Characters大体思路:首先我们肯定需要遍历字符串,那么我们需要考虑在遍历的过程中,对于每个字符,我们需要知道哪些信息。 1. 我们肯定需要知道该字符有没有出现过。 2. 我们肯定需要知道以该字符作为结束字符的最长未重复子串的长度。如果上述两点在一次遍历过程中总是能够知道,那么我们就可以记录遍历过程中出现
2017-02-09 17:33:39
198
原创 2. Add Two Numbers
题目链接2. Add Two Numbers直接遍历链表相加再考虑进位就行了,就是有几点注意的。细节思考: 1. l1, l2长度有可能不同,计算公共长度后要计算剩余的链表,计算的时候别忘了加入公共时候剩下的进位 2. 全部计算完后还有可能存在进位,这个不能拉下 3. 新链表最后的next别忘记是NULL/** * Definition for singly-linked list. *
2017-02-09 17:03:49
171
原创 1. Two Sum
题目链接1. Two Sum思考过程:最容易想到的思路是直接遍历每个元素,然后用target 减去这个元素得到一个数N,接着再遍历整个数组去寻找看N在不在数组中。这样做的时间复杂度为O(n^2)n^2的复杂度来至于2个方面,第一,是遍历每个元素复杂度O(n),第二是对于每个元素与target相减得到的数N都需要复杂度为O(n)的查找操作,两者是相乘关系,所以优化带来的效益是一样的。 很显然,第一点
2016-10-25 19:17:36
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人