目录
一、sql-连续出现的数字
二、三数之和
三、125. 验证回文串 - 力扣(LeetCode)
180. 连续出现的数字 - 力扣(LeetCode)
一、sql-连续出现的数字
找出连续出现三次以上的数字,并且需要去重
连续三次可以用三个表作笛卡集,把相邻的三个数据放在一行,相等 就是用=来判断
把三个表的数据放到一行之后就可以用 = 来判断是否相等
相等保留,最后去重一下
select distinct l1.num as 'ConsecutiveNums'
from Logs l1,Logs l2,Logs l3
where l2.id - 1 = l1.id
and l3.id - 1 = l2.id
and l1.num = l2.num
and l2.num = l3.num
二、三数之和
去重太恶心了
public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ret = new ArrayList<>();Arrays.sort(nums);for(int i = 0;i < nums.length;){int left = i+1;int target = nums[i];int right = nums.length - 1;while(left < right){if(nums[left] + nums[right] == -target){List<Integer> ret1 = new ArrayList<>();ret1.add(nums[left]);ret1.add(nums[right]);ret1.add(target);ret.add(ret1);left++;right--;while(left < right && nums[left] == nums[left-1]){left++;}while(left < right && nums[right] == nums[right+1]){right--;} }else if(nums[left] + nums[right] > -target){right--;}else{left++;}}i++;while(i < nums.length && nums[i] == nums[i-1]){i++;}}return ret;}
三、125. 验证回文串 - 力扣(LeetCode)
阴间题目
意思就是保留字母和数字
public boolean isPalindrome(String _s) {char[] ch = _s.toLowerCase().toCharArray();StringBuilder s = new StringBuilder();for(int i = 0;i < ch.length;i++){if(ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= '0' && ch[i] <= '9'){s.append(ch[i]);} }ch = s.toString().toCharArray();int left = 0;int right = ch.length - 1;while(left < right){if(ch[left++] != ch[right--]){return false;}}return true;}