双指针
帅过地球一半的男人
至少帅过地球一半的男人
展开
-
821. 字符的最短距离
力扣传送门 思路一:双指针 假如指定字符为a 第一种abcda,字符被指定字符包围,最小距离为到左右两边a的最小值,例如b的最小距离为min(a-b,b-a) => (4-1,1-0) 第二种bcda,左边无指定字符,最小距离为a-b,例如b的最小距离为a-b => (3-0) 第三种abcd,右边无指定字符,最小距离为b-a,例如b的最小距离为b-a => (1-0) class Solution { public int[] shortestToChar(String s原创 2022-04-19 19:31:33 · 163 阅读 · 0 评论 -
75. 颜色分类
75. 颜色分类 力扣传送门 思路:双指针,遇到0就替换到左边;遇到2就替换到右边;遇到1不管;具体替换左边右边的那个数由两指针控制。 动画题解 class Solution { public void sortColors(int[] nums) { int l = 0, r = nums.length - 1; for(int i =0 ; i <= r; i++) { if(nums[i] == 0) {原创 2022-04-05 13:13:26 · 178 阅读 · 0 评论 -
647. 回文子串*
力扣链接 思路: 法一:遍历每种长度的字符串,长度为1的,长度为2…从两边往中间,对左右字符进行比较,也就是双指针由两边往中间靠拢。 法二:以当前字符为中心,比较两边的字符,也就是双指针由中间往两边扩张。其中以当前字符为中心需要考虑两种情况,单个字符和两个字符。否则会有缺漏,不像法一,虽然暴力,但每种请况都考虑到。 int ans = 0; public int countSubstrings(String s) { ans = s.length(); //遍历每种长度的字符.原创 2022-03-19 09:51:04 · 281 阅读 · 0 评论 -
9. 回文数
力扣链接 思路: 法一:数字转字符串,从两边往中间遍历,进行字符比较,也就是双指针。 法二:通过除法、模运算,得到数字的每一位,存入数组,再用双指针。 public boolean isPalindrome(int x) { String str =String.valueOf(x); int i = 0; int j = str.length()-1; while(i <= j && str.charAt(i) == str.cha.原创 2022-03-18 17:41:21 · 311 阅读 · 0 评论