当前位置: 首页 > news >正文

d202545

一、合并两个有序数组

思路和合并两个有序链表是一样的

 public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] left = new int[m];
        for(int i = 0;i < left.length;i++){
            left[i] = nums1[i];
        }
        int l = 0;
        int r = 0;
        int j = 0;
        while(l < left.length && r < n){
            if(left[l] < nums2[r]){
                nums1[j++] = left[l++];
            } else {
                nums1[j++] = nums2[r++];
            }
        }
        while(l < left.length){
            nums1[j++] = left[l++];
        }
        while(r < n){
            nums1[j++] = nums2[r++];
        }
    }

二、原地移除元素

原地移除指定数,数值划分区间的思想,划分成val  和   非val

 public int removeElement(int[] nums, int val) {
        int i = -1;
        int j = 0;
        while(j < nums.length){
            if(nums[j] != val){
                nums[++i] = nums[j];
            } else {
                while(j < nums.length && nums[j] == val){
                    j++;
                }
                if(j < nums.length){
                    nums[++i] = nums[j];
                }
            }
            j++;
        }
        return i+1;
    }

三、多数元素

使用map统计一下每个元素出现的次数

 public int majorityElement(int[] nums) {
        Map<Integer,Integer> map = new HashMap<>();
        for(int val : nums){
            if(map.containsKey(val)){
                map.put(val,map.get(val)+1);
            }else{
                map.put(val,1);
            }
            if(map.get(val) > (nums.length/2)){
                return val;
            }
        }
        return -1;
    }

相关文章:

  • 【MediaPlayer】基于libvlc+awtk的媒体播放器
  • April Fools Day Contest 2025 A-F(没有E) 题解
  • 软件工程面试题(二十八)
  • [ 计算机网络 ] | HTTP协议(一)
  • MySQL:查询
  • 获取KUKA机器人诊断文件KRCdiag的方法
  • Mathematics | Branch
  • STM32 的编程方式总结
  • CCF GESP Python编程 三级认证真题 2025年3月
  • JAVA反序列化深入学习(十二):Groovy1
  • 【家政平台开发(17)】文件存储与管理系统设计:解锁数据的“保险柜”
  • 把握数据治理关键,释放企业数据潜能
  • 【8】搭建k8s集群系列(二进制部署)之安装node节点组件(kubelet)
  • AI 重构老旧系统:创业新曙光
  • 使用MATIO库读取Matlab数据文件中的多维数组
  • Express学习笔记(二)——Express中间件
  • Mlivus Cloud SDK v2技术革新与最佳实践指南
  • 无人机等非合作目标公开数据集2025.4.3
  • Why are we forced to download Apps?
  • Nextjs15 实战 - React Notes之SidebarNoteList优化和Suspense的使用