LC53最大子数组和、lc5最长回文子串、lc283移动零

LC53最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组

是数组中的一个连续部分。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

输入:nums = [1]
输出:1

示例 3:

输入:nums = [5,4,-1,7,8]
输出:23
class Solution {
    public int maxSubArray(int[] nums) {
        if(nums.length == 1) return nums[0];
        int max = 0, res = Integer.MIN_VALUE;
        for(int i = 0; i < nums.length; i++) {
            max = Math.max(nums[i] + max, nums[i]);
            res = Math.max(max, res);
        }
        return res;
    }
}

lc5最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

输入:s = "cbbd"
输出:"bb"
class Solution {
    public String longestPalindrome(String s) {
        if(s.length() == 1) return s;
        // 第一位表示其实idx,第二位表示长度
        int[] res = new int[2]; 
        int maxLen = 0; 
        for(int i = 0; i < s.length() - 1; i++) {
            int[] temp = new int[2];
            int[] odd = isHuiWen(s, i, i);
            int[] even = isHuiWen(s, i, i+1);
            if(odd[1] > even[1]) temp = odd;
            else temp = even;
            if(temp[1] > maxLen) {
                maxLen = temp[1];
                res = temp;
            }
        }
        return s.substring(res[0], res[0] + res[1]);      
    }

    public int[] isHuiWen(String s, int l, int r) {
        int[] res = new int[2];
        while(l >= 0 && r < s.length()) {
            if(s.charAt(l) != s.charAt(r)) break;
            else {
                l = l - 1;
                r = r + 1;
            }
        }
        res[0] = l+1;
        res[1] = r - l -1;
        return res;
    }
}

LC283移动0

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]
class Solution {
    public void moveZeroes(int[] nums) {
        int l = 0, r = 0;
        while(r < nums.length) {
            if(nums[r] != 0) {
                int temp = nums[l];
                nums[l] = nums[r];
                nums[r] = temp;
                l++;
            }
            r++;
        }
    }
}

相关推荐

  1. LC53lc5lc283移动

    2024-07-15 02:06:01       23 阅读
  2. LC 53.

    2024-07-15 02:06:01       40 阅读
  3. 公共序列公共模板(LCS

    2024-07-15 02:06:01       21 阅读
  4. 【数组】-Lc53-(动态规划)

    2024-07-15 02:06:01       41 阅读
  5. LC 76.小覆盖

    2024-07-15 02:06:01       37 阅读
  6. 5.

    2024-07-15 02:06:01       48 阅读
  7. 5.

    2024-07-15 02:06:01       29 阅读
  8. 5.

    2024-07-15 02:06:01       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 02:06:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 02:06:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 02:06:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 02:06:01       69 阅读

热门阅读

  1. Vue3 defineProps的使用

    2024-07-15 02:06:01       20 阅读
  2. 数据结构第26节 广度优先搜索

    2024-07-15 02:06:01       18 阅读
  3. 共享云硬盘并发读写之集群文件系统

    2024-07-15 02:06:01       24 阅读
  4. Excel数据处理

    2024-07-15 02:06:01       20 阅读
  5. 虚拟专用网络(VPN)技术的研究与应用

    2024-07-15 02:06:01       20 阅读
  6. 0711,0712,0713 进程,进程之间的通信

    2024-07-15 02:06:01       16 阅读
  7. ZooKeeper实现分布式锁

    2024-07-15 02:06:01       17 阅读
  8. 了解微前端和qiankun

    2024-07-15 02:06:01       19 阅读
  9. Qt易错总结

    2024-07-15 02:06:01       23 阅读
  10. OpenAI 发布官方 .NET 库

    2024-07-15 02:06:01       19 阅读
  11. 技术探索之kotlin浅谈

    2024-07-15 02:06:01       19 阅读
  12. 企业网络安全工具整合与管控建议

    2024-07-15 02:06:01       21 阅读