![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
Haha@25
300字以内
展开
-
524. 通过删除字母匹配到字典里最长单词(双指针)
方法一:排序 + 找子串问题中匹配的条件是我们需要考虑字典中能匹配的最长字符串,相同长度的情况下考虑字典序最小的。为了简化搜索过程,我们把字典中的字符串按照这一规则排序,这样越靠前的字符串是我们越优先考虑的。现在,与其删除 ss 中的字符,我们直接从头开始检查字典中的单词是否是 ss 串的子序列。这是因为,如果 xx 是 ss 的子序列,我们可以直接通过删除 ss 中的某些字符得到 xx 。...原创 2020-02-16 23:06:57 · 133 阅读 · 0 评论 -
141. 环形链表(双指针)(哈希表)
方法一:哈希表/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */pub...原创 2020-02-16 16:57:58 · 129 阅读 · 0 评论 -
88. 合并两个有序数组(双指针)
方法一:从头开始遍历,需要额外的o(n)的空间在这里插入代码片class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int[] nums1tmp = new int[m];for(int i = 0;i<m;i++){nums1tmp[i] = nums1[i];} i...原创 2020-02-15 12:03:26 · 162 阅读 · 0 评论 -
680. 验证回文字符串 Ⅱ(双指针)
删除操作不一定要真的删除,可以逻辑上删除class Solution { public boolean validPalindrome(String s) { int i = 0,j = s.length()-1,deleteCnt = 0; while(i<j){ if(s.charAt(i)!=s.charAt(j)...原创 2020-02-15 11:32:58 · 104 阅读 · 0 评论 -
345. 反转字符串中的元音字母(双指针)
思路:双指针两种写法存结果:1,用stringBuilder;2,用字符类型数组class Solution {private final static HashSet<Character> vowels = new HashSet<>( Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', '...原创 2020-02-15 10:49:05 · 91 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组(双指针)
思路class Solution { public int[] twoSum(int[] numbers, int target) { int[] res = {-1,-1}; int i = 0,j = numbers.length-1; while(i<j){ int k = numbers[i]+num...原创 2020-02-13 13:07:01 · 84 阅读 · 0 评论 -
633. 平方数之和 (双指针)
方法一:双指针思路类似LeetCode 167 两数之和II不同的时,这里对j进行了剪枝,j初始化为 (int)Math.sqrt©;class Solution { public boolean judgeSquareSum(int c) { if(c<0) return false; int i = 0, j = (int)Math.s...原创 2020-02-15 10:18:06 · 173 阅读 · 0 评论