算法-双指针3.4
目录
🌿力扣202-快乐数
🧊题目链接:https://leetcode.cn/problems/happy-number/description/
🧊题目描述:
🧊解题思路:
🧊解题代码:
🌿力扣11-盛水最多的容器
🧊题目链接:https://leetcode.cn/problems/container-with-most-water/description/
🧊题目描述:
🧊解题思路:
🧊解题代码:
🌿力扣202-快乐数
🧊题目链接:https://leetcode.cn/problems/happy-number/description/
🧊题目描述:
🧊解题思路:
定义slow和fast的指针,fast走两步,slow走一步,这样无论这个数是不是快乐数,最后都会相等,也就是会相遇,
然后我们要明确,如果不是快乐数,slow和fast的值就永远不可能走到1,是的快乐数的话,就必定相遇为1
🧊解题代码:
class Solution {public boolean isHappy(int n) {int slow=n,fast=isHappy2(n);//先让fast走两步,slow走一步,如果是1就会立即判断出来while(slow !=fast){//相遇就停下slow =isHappy2(slow);fast=isHappy2(isHappy2(fast));}return slow==1;}public int isHappy2(int i){//相当于走了一步int sum=0;while(i!=0){int j= i%10;i=i/10;sum+=j*j;}return sum;}
}
🌿力扣11-盛水最多的容器
🧊题目链接:https://leetcode.cn/problems/container-with-most-water/description/
🧊题目描述:
🧊解题思路:
🧊解题代码:
class Solution {public int maxArea(int[] height) {int i=0,j=height.length-1;int max=0;while(i!=j){if(height[i]<height[j]){//选择1int v=height[i]*(j-i);max=Math.max(v,max);//更新容器最大的那个i+=1;}else{//选择2int v=height[j]*(j-i);max=Math.max(v,max);//更新容器最大的那个j-=1;}}return max;}
}
🧊🌿🍋🟩🔎完结!!!