
ACM-String问题
liuyu1942
这个作者很懒,什么都没留下…
展开
-
poj 2479 Maximum sum(求最大子段和的延伸)
题目:http://poj.org/problem?id=2479题意: 题目的大概意思是把数组分成不交两段,分别求出两段的最大子段和s1和s2,然后求出最大的s1+s2。原创 2014-09-12 10:40:17 · 463 阅读 · 0 评论 -
leetcode Add Binary
题目:https://oj.leetcode.com/problems/add-binary/题意:两个二进制数加到一起返回一个string思路:模拟加就行了,注意最后如果加完进位部分还有个1,记得要加到最后的结果里,别忘了class Solution {public: string addBinary(string a, string b) { int ji原创 2015-03-03 09:44:29 · 360 阅读 · 0 评论 -
leetcode Length of Last Word
题目:https://oj.leetcode.com/problems/length-of-last-word/题意:统计最后一个单词的字母个数思路:注意开始和结尾的空格就行class Solution {public: int lengthOfLastWord(const char *s) { int len = strlen(s); if(原创 2015-03-02 08:26:13 · 310 阅读 · 0 评论 -
leetcode count and say
题目:https://oj.leetcode.com/problems/count-and-say/题意:搞了半天没搞懂题意,是说给一个数量n,然后从1开始去按照这样一个顺序去排列,直到n :1->1一个1->11两个->21一个2一个1->1211每次读取上一次的结果,然后用“几个几”这样的方式形成一个新的字符串这里参照别人的方法,用到了stringstrea原创 2015-02-14 12:15:40 · 392 阅读 · 0 评论 -
leetcode Multiply Strings
题目:https://oj.leetcode.com/problems/multiply-strings/题意:模拟大数乘法,返回string思路:用两层循环模拟两个数相乘的时候每一位之间的乘法注意:1,在发生进位的时候,可能会出现进了一位,又进一位的情况,所以要判断一下进位是否大于10,那样要再进一位2.这里参照了别人的一个小技巧,本来打算k从0往后走,最后生成结果后,rever原创 2015-02-15 12:56:12 · 368 阅读 · 0 评论 -
leetcode Implement strStr()
题目:https://oj.leetcode.com/problems/implement-strstr/题意:找到字符串heystack中有没有子串needle,没有返回-1,有返回在heystack中的第几个因为用的是暴力方法,所以复杂度n*m,这种方法叫名字brute force。。。。discuss里很多人说的BF解法,估计就是这个吧,这种不叫算法的算法还有个缩写的名字真是醉了,感原创 2015-02-11 11:53:44 · 438 阅读 · 0 评论 -
leetcode Anagrams
题目:https://oj.leetcode.com/problems/anagrams/题意:找出一个string 数组中,所有anagram,就是两个单词中的每个字母的数量一样,比如eat和tea,顺序不要求思路:每个单词排序,存到map中,map的key是排好序的字母组合,value是所有同字母数量的单词门strs[i]代码:class Solution {public:原创 2015-02-21 14:51:34 · 395 阅读 · 0 评论 -
leetcode Remove Duplicates from Sorted Array & Remove Element
题目:https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/题意:求一组数中,有多少个不同的,注意!不仅要返回个数,还要把原来的数组变成没重复的。。也真伤,我也是没看懂题class Solution {public: int removeDuplicates(int A[], int n)原创 2015-02-10 11:28:49 · 358 阅读 · 0 评论 -
leetcode 3sum closest
链接:https://oj.leetcode.com/problems/3sum-closest/题意:在数组中求出3个数sum和最接近target 时,sum为返回值1.和上道题思路类似2.比较的时候注意用绝对值abs代码:class Solution {public: int threeSumClosest(vector &num, int target) {原创 2015-02-03 11:55:51 · 444 阅读 · 0 评论 -
leetcode 4Sum
这道题和前面一道3Sum是一样的就是多一层循环题目:https://oj.leetcode.com/problems/4sum/注意改3Sum的代码时,要注意size,还有双重循环的时候记得注意(l != i+1)这个地方class Solution {public: vector > fourSum(vector &num, int target) {原创 2015-02-04 11:33:43 · 398 阅读 · 0 评论 -
leetcode Container With Most Water
找一个长乘以宽的最大情况,长就是纵坐标里的最小值,宽就是横坐标差注意1:用O(n)时间复杂度,从两边一起往中间缩就行,因为他的长只和最短的短板有关,所以left++ , right--,可以画个图试试,因为如果要面积最大,那么left或者right往中间缩的时候,必须要大于他变化前的高度,否则不可能宽,长都减小,面积还能大。。。所以一次o(n)就可以了class Solution原创 2015-02-02 09:34:45 · 333 阅读 · 0 评论 -
leetcode Palindrome Number
题目:判断一个整数是不是回文1.负数都不是2.没啥要注意的了。。。。。class Solution {public: bool isPalindrome(int x) { int re = 0, k = x; if(x < 0) return false; if(x == 0) return true; whil原创 2015-01-29 09:22:18 · 281 阅读 · 0 评论 -
leetcode String to Integer (atoi)
这个题就是string 转int注意几点: 1 前面会有空格,肯定往后跳直到没空格,但是,如果后面有空格,那么不是跳过空格,而是结束循环!!!2,正负号同时出现,那就直接返回0,而不是负xxxx3,for的巧用4,如果引入某包,则可以用INT_MAX和INT_MIN来做整数的最大最小值class Solution {public: int atoi(const原创 2015-01-28 23:01:01 · 383 阅读 · 0 评论 -
leetcode Longest Palindromic Substring
string问题,题意是找出字符串中的最长回文,啥是回文? 123321! 12321! 这两种都算,也就是说都要考虑到中间是一个还是两个问题:那aaaa时,如何判断苦做半天发现要加各种If,最后还会出现一些问题,室友提醒,在一次大循环内的小循环可以先判断中间是一个的,再判断中间是两个的,这样逻辑会简单一些,反正最后要的是最长的部分,这样做时间复杂度还是n2后来一直Outpu原创 2015-01-28 09:47:17 · 448 阅读 · 0 评论 -
leetcode Longest Substring Without Repeating Characters
string问题,这个题可以用数组,hashmap,set来做,其中时间复杂度还是数组最小,但是有个问题,这道题只有小写字母所以设一个长度为26的数组就可以了,bool char[26]来表示每个字母在最长不重复子字符串中是否出现了思路:1,设定两个指针,一个left,一个right,他们之间s[l]~s[r]表示没有重复的部分,也就是说:如果这部分中没重复的是abcde的话,用数组表示,原创 2015-01-27 20:58:15 · 442 阅读 · 0 评论 -
leetcode ZigZag Conversion
这道题其实貌似用二维数组做会更方便,但是没想到。。。。这道题显然是个string 的题,我的方法笨一点,但是好想我的想法是:1.这个斑马纹的写法其实有点像VVVVVV这个形状的写法,然后横着按行return出去2.规律是,令行数为row,当row小于等于nRows的时候,每个数之箭的距离是2*(nRows - row),当row大于nRows的时候两个数的距离是2*(row-1)3原创 2015-01-27 20:52:42 · 412 阅读 · 0 评论 -
poj 2001字典树
题目:http://poj.org/problem?id=2001题意转载 2014-10-06 23:08:35 · 403 阅读 · 0 评论 -
leedcode 3Sum
题意: 就是给一个数组,然你求出里面 3个数和为0的 组合,然后存在vector里返回,数字可以不连续1.如果n3复杂度肯定不行,所以用n2的复杂度,固定一个数,然后求那两个数的和等于第一个确定的数的负数即可,当然先按照升序排好,注意vector的排序方法,用.begin(),.end()2.用两指针思路,在固定一个的同时,两个指针一个从前一个从后像内缩,指导两个指针碰上。 3.一个非原创 2015-02-03 11:12:31 · 316 阅读 · 0 评论