技术共享

力扣面试经典150题

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

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

1.合并两个有序数组

思路:

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

代码:

  1. class Solution {
  2. public void merge(int[] nums1, int m, int[] nums2, int n) {
  3. int l=nums1.length-1;
  4. int i=m-1,j=n-1;
  5. while(i>=0&&j>=0){
  6. if(nums1[i]>nums2[j]){
  7. nums1[l--]=nums1[i];
  8. i--;
  9. }else{
  10. nums1[l--]=nums2[j];
  11. j--;
  12. }
  13. }
  14. while(i>=0){
  15. nums1[l--]=nums1[i--];
  16. }
  17. while(j>=0){
  18. nums1[l--]=nums2[j--];
  19. }
  20. }
  21. }

2.移除元素

思路:

代码:

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

思路:

代码:

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

思路:

代码:

5.多数元素

思路:

代码:

6.轮转数组

思路:

代码:

7.买卖股票的最佳时机

思路:

代码:

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

思路:

代码:

9.跳跃游戏

思路:

代码:

10.跳跃游戏II

思路:

代码:

11.H指数

思路:

代码:

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

思路:

代码:

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

思路:

代码:

14.加油站

思路:

代码:

15.分发糖果

思路:

代码:

16.接雨水

思路:

代码:

17.罗马数字转整数

思路:

代码:

18.整数转罗马数字

思路:

代码:

19.最后一个单词的长度

思路: