day11(11.11)——leetcode面试经典150

这几天学完了python,马上就要考试了,然后一下子就忘记背单词和写题了,狠狠的补回来!!!

125. 验证回文串

125. 验证回文串

题目:

题解:

java 复制代码
class Solution {
    public boolean isPalindrome(String s) {
        StringBuilder str = new StringBuilder();
        for(int i=0;i<s.length();i++) {
            char x = Character.toLowerCase(s.charAt(i));
            if(Character.isLetterOrDigit(x)) {
                str.append(x);
            }
        }
        if(str.toString().equals(str.reverse().toString())){
            return true;
        }
        else {
            return false;
        }


    }
}

392. 判断子序列

392. 判断子序列

题目:

题解:

java 复制代码
class Solution {
    public boolean isSubsequence(String s, String t) {
        if(s.length()>t.length()) {
            return false;
        }
        else if(s.length()==t.length() && s.length()!=0 && s.equals(t) ){
            return false;
        }
        else {
            int i=0, j=0;
            while(j<t.length() && i<s.length()) {
                //说明两个字符匹配
                if(s.charAt(i)==t.charAt(j)) {
                    i++;
                    j++;
                }
                //不匹配
                else {
                    //说明父子串已经走完了,但是子串还没有走完
                    if(j==t.length()-1) {
                        return false;
                    }
                    j++;
                }
            } 
            // 如果子串没有到达最后一个字符+1的位置,说明子序列没走完,匹配不上
            if(i!=s.length()) {
                return false;
            }
            return true;
        }
    }
}

167. 两数之和 II - 输入有序数组

167. 两数之和|| - 输入有序数组

题目:

题解:

java 复制代码
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int i=0,j=numbers.length-1;
        int[] news=new int[2];
        while(i<j) {
            if(numbers[i]+numbers[j]==target) {
                news[0]=i+1;
                news[1]=j+1;
                break;
            }
            else {
                if(numbers[i]+numbers[j]<target) {
                    i++;
                }
                else {
                    j--;
                }
            }
        }
        return news;
    }
}

11. 盛最多水的容器

11. 盛最多水的容器

题目:

题解:

java 复制代码
class Solution {
    public int maxArea(int[] height) {
        int i=0, j=height.length-1;
        int max = 0;
        while(i<j) {
            max=Math.max(Math.min(height[i],height[j])*(j-i),max);
            //移动较小的墙的点
            //这样相当于增加了最大水量,因为以两边最小的墙高为高
            if(height[i]<height[j]) {
                i++;
            }
            else {
                j--;
            }
        }
        return max;
    }
}
相关推荐
草履虫建模5 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
naruto_lnq7 小时前
分布式系统安全通信
开发语言·c++·算法
Jasmine_llq7 小时前
《P3157 [CQOI2011] 动态逆序对》
算法·cdq 分治·动态问题静态化+双向偏序统计·树状数组(高效统计元素大小关系·排序算法(预处理偏序和时间戳)·前缀和(合并单个贡献为总逆序对·动态问题静态化
爱吃rabbit的mq8 小时前
第09章:随机森林:集成学习的威力
算法·随机森林·集成学习
(❁´◡`❁)Jimmy(❁´◡`❁)8 小时前
Exgcd 学习笔记
笔记·学习·算法
YYuCChi9 小时前
代码随想录算法训练营第三十七天 | 52.携带研究材料(卡码网)、518.零钱兑换||、377.组合总和IV、57.爬楼梯(卡码网)
算法·动态规划
不能隔夜的咖喱9 小时前
牛客网刷题(2)
java·开发语言·算法
VT.馒头9 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
进击的小头9 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
咖丨喱11 小时前
IP校验和算法解析与实现
网络·tcp/ip·算法