力扣面试经典150题

时间:2024-07-12 13:34:56

链接:面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

1.合并两个有序数组

思路:

两个指针分别指向两个数组的末尾,向前遍历比较大小,将大的依次逆向填充到nums1中

代码:

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int l=nums1.length-1;
        int i=m-1,j=n-1;
        while(i>=0&&j>=0){
            if(nums1[i]>nums2[j]){
                nums1[l--]=nums1[i];
                i--;
            }else{
                nums1[l--]=nums2[j];
                j--;
            }
        }
        while(i>=0){
            nums1[l--]=nums1[i--];
        }
        while(j>=0){
            nums1[l--]=nums2[j--];
        }
    }
}

2.移除元素

思路:

代码:

3.删除有序数组中的重复项

思路:

代码:

4.删除有序数组中的重复项II

思路:

代码:

5.多数元素

思路:

代码:

6.轮转数组

思路:

代码:

7.买卖股票的最佳时机

思路:

代码:

8.买卖股票的最佳时机II

思路:

代码:

9.跳跃游戏

思路:

代码:

10.跳跃游戏II

思路:

代码:

11.H指数

思路:

代码:

12.O(1)时间插入,删除和获取随机元素

思路:

代码:

13.除自身以外数组的乘积

思路:

代码:

14.加油站

思路:

代码:

15.分发糖果

思路:

代码:

16.接雨水

思路:

代码:

17.罗马数字转整数

思路:

代码:

18.整数转罗马数字

思路:

代码:

19.最后一个单词的长度

思路: