131. Palindrome Partitioning substr使用的是坐标值,不使用.begin()..end()这种迭代器 使用dfs,类似于subsets的题,每次判断要不要加入这个数 start每次是起始的位置,判断当前位置到起始位置是不是回文 class Solution { public: vector<vector<string>> partition(string s) { vector<vector<string> > result;…
131. 分割回文串 131. Palindrome Partitioning 题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. LeetCode131. Palindrome Partitioning中等 示例: 输入: "aab" 输出: [   ["aa","b"],   ["a","a","b"]] Java 实现 略…
266.Palindrome Permutation https://www.cnblogs.com/grandyang/p/5223238.html 判断一个字符串的全排列能否形成一个回文串. 能组成回文串,在字符串长度为偶数的情况下,每个字符必须成对出现:奇数的情况下允许一个字符单独出现,其他字符都必须成对出现.用一个set对相同字符进行加减即可. class Solution { public: /** * @param s: the given string * @return: if…
169. Majority Element 求超过数组个数一半的数 可以使用hash解决,时间复杂度为O(n),但空间复杂度也为O(n) class Solution { public: int majorityElement(vector<int>& nums) { unordered_map<int,int> count; int n=nums.size(); ;i<n;i++){ ) return nums[i]; } ; } }; 使用投票法,时间复杂度为O(…
https://www.cnblogs.com/grandyang/p/4332313.html 在一个矩阵中能不能找到string的一条路径 这个题使用的是dfs.但这个题与number of islands有点不同,那个题中visited过的就不用再扫了,但是这个需要进行回溯回来. 所以使用了visited[i][j] = false; 本质区别还是那个题是找一片区域,这个题更像是找一条路径. 错误一:如果board不引用,会报超内存 错误二: 这个写法和正确写法基本相同,但错误写法需要每次…
54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1)这种开始的. 用endx.endy来表示每次转圈的x.y方向的终止位置,方便后面进行边界条件设置. 注意:后面start < endx && start < endy.start < endy && start < endx-1都必须同时满足x.y的条…
263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution { public: bool isUgly(int num) { ) return false; == ) num /= ; == ) num /= ; == ) num /= ; ? true : false; } }; 264. Ugly Number II 用一个数组去存第n个前面的所有整数,然后…
344. Reverse String 最基础的旋转字符串 class Solution { public: void reverseString(vector<char>& s) { if(s.empty()) return; ; ; while(start < end){ char tmp = s[end]; s[end] = s[start]; s[start] = tmp; start++; end--; } return; } }; 541. Reverse Strin…
Wiggle Sort: 注意:解法一是每次i增加2,题目不是保证3个3个的情况,而是整个数组都要满足要求. 解法一错误版本: 如果nums的长度是4,这种情况下nums[i+1]会越界.但是如果你用的是i和i-1的组合,一定可以不会越界,因为i不越界i-1就一定不会越界,for循环控制i,i越界了整个循环就结束了. class Solution { public: void wiggleSort(vector<int>& nums) { sort(nums.begin(),nums.…
1.two sum 用hash来存储数值和对应的位置索引,通过target-当前值来获得需要的值,然后再hash中寻找 错误代码1: Input:[3,2,4]6Output:[0,0]Expected:[1,2] 同一个数字不能重复使用,但这个代码没排除这个问题 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> result; uno…