leetcode 18. 四数之和
代码跟三数之和类似思路,外层再嵌套一个循环
123456789101112131415161718192021222324252627282930313233class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { ...
leetcode 15. 三数之和
代码123456789101112131415161718192021222324252627282930class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res ...
leetcode 14. 最长公共前缀
ps:i表示每个字符串对应的同一个索引,j表示对应第几个字符串,只有所有元素都是共有的才能执行完循环到最后一步,即可返回任意的字符串
12345678910111213class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs ...
leetcode 13. 罗马数字转整数
map12345678910class Solution {public: int romanToInt(string s) { unordered_map<char,int> m = {{'I',1}, {'V',5}, {'X ...
leetcode 11. 盛最多水的容器
解题思路1.设定双指针left和right2.v = (right - left) * min(h[left],h[right]),因为无论移动哪个指针,right-left都会变小,要想得到v的最大值,我们只能使min(h[left],h[right])增大,所以需要不断移动高度较小的那个指针。
代码12345678910111213class Solution {public: ...
leetcode 7.整数反转
解题思路神奇的一道题,debug n次
ps: if (rev > INT_MAX/10 || (rev == INT_MAX / 10 && pop > 7)) 官方的第二个判断条件中判断了pop的值,来判断是否越界,但是由于题目给定的是int型的数据,范围为-2147483648到2147483647,所以逆序输出的时候,当rev == INT ...
leetcode 5. 最长回文子串
1中心扩散1234567891011121314151617181920212223242526class Solution {public: void help(const string &s, int left, int right, int& start, int& maxlen){ //中心扩散 wh ...
leetcode 3. 无重复字符的最长子串
基本思想就是将串分段进行遍历,变更start的位置
代码11234567891011121314class Solution {public: int lengthOfLongestSubstring(string s) { int m[128] = {0}, len = 0, start = 0; for(int i = 0; i < ...
leetcode 2. 两数相加
代码12345678910111213141516171819202122232425class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode dummy (0); ListNode* p = &dummy; int sum = 0 ...
leetcode 1. 两数之和
ps:对于存在重复元素的情况,用一遍哈希和两遍哈希确实会得到不同的结果,但是都是符合题目要求的。 题目描述确实有点含糊,但是这个题目的本意是让我们练习哈希表,题目说到You may assume that each input would have exactly one solution,即您可以假设每个输入都只有一个解决方案。
两遍哈希1234567891011121314class Solu ...