Quarter's blog Quarter's blog
首页
  • Java

    • 基础概念于知识
  • 数据库

    • 高性能MySQL读后感
    • Oracle索引入门
  • JVM

    • 深入学习JVM虚拟机
  • Vue
  • leetcode打卡
  • 虚拟机集群搭建
  • 工作中的Oracle
关于
收藏
  • 分类
  • 标签
  • 归档

Quarter

无限进步
首页
  • Java

    • 基础概念于知识
  • 数据库

    • 高性能MySQL读后感
    • Oracle索引入门
  • JVM

    • 深入学习JVM虚拟机
  • Vue
  • leetcode打卡
  • 虚拟机集群搭建
  • 工作中的Oracle
关于
收藏
  • 分类
  • 标签
  • 归档
  • CICD

  • 算法

    • 训练营Day1-704. 二分查找&27. 移除元素
      • 704.二分查找法
      • 27.移除元素
        • 思路
    • 训练营Day2
    • 训练营Day3
    • 训练营Day4
    • 训练营Day6
    • 训练营Day7
    • 训练营Day8
    • 训练营Day10
    • 训练营Day11
    • 训练营Day13
  • 技术
  • 算法
Quarter
2023-06-06
目录

训练营Day1-704. 二分查找&27. 移除元素

# 704.二分查找法 (opens new window)

梦回大学算法课,简单的,不多说

class Solution {
    public int search(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = (right - left) / 2 + left;
            int num = nums[mid];
            if (num == target) {
                return mid;
            } else if (num > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return -1;
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 27.移除元素 (opens new window)

给定一个数组和目标值,输出删除目标值后的数组长度。

# 思路

如果题目没有限制必须 仅使用 O(1) 额外空间并 原地 (opens new window)修改输入数组。

那么我们可以考虑遍历旧数组,并把不等于val的值全部复制到新的数组里面去。但是它限制了

class Solution {
    public int removeElement(int[] nums, int val) {
        int slowIndex = 0; //慢指针
        for(int fastIndex = 0;fastIndex<nums.length;fastIndex++){
            if(nums[fastIndex]!=val){
                nums[slowIndex] = nums[fastIndex];
                slowIndex++;
            }
        }
        return slowIndex;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
#训练营
上次更新: 2023/06/07, 01:46:19
centos集群搭建
训练营Day2

← centos集群搭建 训练营Day2→

最近更新
01
训练营Day13
06-23
02
训练营Day11
06-22
03
训练营Day10
06-22
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Quarter | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式