刷题5-合并两个有序数组

news2024/9/23 17:21:38

刷题5-合并两个有序数组
在这里插入图片描述
在这里插入图片描述

解题思路:
把数组nums2的元素复制到数组nums1中,然后利用Java的Arrays.sort()数组排序,默认从小到大
核心代码:

class Solution {
     public void merge(int[] nums1,int m,int[] nums2,int n){
        for(int i=0;i<n;i++){
            nums1[m+i]=nums2[i];
        }
        Arrays.sort(nums1);
    }
}

在这里插入图片描述

比较有意思的是,查了查sort()这个函数,在数组中的排序语法,比如说我想从大到小排序
可以看到这里int要换成Integer,而且要重新定义排序规则

public void merge(Integer[] nums1,int m,Integer[] nums2,int n){
        for(int i=0;i<n;i++){
            nums1[m+i]=nums2[i];
        }
        Arrays.sort(nums1,new Comparator<Integer>(){
            public int compare(Integer o1,Integer o2){
                return o2-o1;
            }
        });
    }

不能使用基本类型(int,double, char),如果是int型需要改成Integer,float要改成Float
不定义排序规则也可以,使用Arrays.sort(scores,Collections.reverseOrder());实现从大到小的排序

  public static void main(String[] args){
          Integer[] arr2={1,4,3,6,7,9,11};
          Arrays.sort(arr2,Collections.reverseOrder());
          System.out.println(Arrays.toString(arr2));
        }

在这里插入图片描述
其中,
Arrays.toString()
作用:方便地输出数组。
这个方法是是用来将数组转换成String类型输出的,入参可以是long,float,double,int,boolean,byte,object
型的数组。
又比如我想传入一个二维的数组,按照一维数组从小到大排序,当第一维相等时,按照第二维从小到大排序

 public static void main(String[] args){
        int[][] arr={{4,2},{3,2},{4,1},{1,5},{2,5},{2,6}};
        Arrays.sort(arr, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                if(o1[0]==o2[0]) return o1[1]-o2[1];
                else{
                    return o1[0]-o2[0];
                }
            }
        });
        for(int[] a:arr){
            System.out.println(Arrays.toString(a));
        }
    }

在这里插入图片描述
还可以对list排序
1.使用list自带的sort方法
默认是对基本类型进行从小到大的排序,如果我们要自定义排序方法或者对自己的对象进行排序
(注意语法,传入一个比较器)

List<Person> list = new ArrayList<>();
//......
list.sort(new Comparator<Person>() {
    @Override
    public int compare(Person o1, Person o2) {
        return o1.age-o2.age;
    }
});

2.使用Collections.sort()方法
只要数组元素可以进行比较就行,不需要传入比较器
只要比较的对象实现comparable接口,也就是可以比较,直接调用Collections.sort()即可比较

class Person implements Comparable<Person>{
    String name;
    int age;
    int height;
 
    @Override
    public int compareTo(Person o) {
        return this.age-o.age;
    }
}
List<Person> list = new ArrayList<>();
//......
Collections.sort(list);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Learning From Documents in the Wild to Improve Document Unwarping论文学习笔记

1 广告 论文2022年发表在SIGGRAPH顶会上。 预训练出来的模型有139M。 对文档的去扭曲变形效果在我们调研的深度学习模型里面算是最好的。 2 摘要 文档图像去扭曲是文档数字化和分析的重要内容。最先进的方法依靠纯合成数据来训练深度网络进行去扭曲。因此&#xff0c;经过训…

为 Go 开发配置Visual Studio Code

在本快速入门中&#xff0c;你将安装和配置 Go for Visual Studio Code 扩展。 在 2020 年 Go 开发人员调查结果中&#xff0c;41% 的受访者选择Visual Studio Code作为他们最喜欢的 Go 编辑器。 这使得Visual Studio Code成为 Go 开发人员最常用的编辑器。 Visual Studio Co…

中间代码生成(Intermediate Code Generation)

中间代码生成&#xff08;Intermediate Code Generation&#xff09;申明语句的翻译类型表达式申明式语句翻译简单赋值语句的翻译数组引用的翻译控制流语句的翻译控制流语句及其SDT布尔表达式及其SDT控制流语句翻译的例子布尔表达式和控制流表达式的回填switch语句的翻译过程调…

游戏开发32课 typescript super

super 在类的方法中super就表示当前类的父类。 如果在子类中写了构造函数&#xff0c;在子类构造函数中必须对父类的构造函数进行调用。 例子 (function() { // 父类 class Animal { name: string; constructor(name: string) { this.na…

25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器

我的知识星球 里有一个朋友提出了 SAP OData 服务 metadata 缓存方面的疑问,本文就来详细说一说: jerry,啥时候有时间给介绍一下fiori的Metadata数据系统的处理机制吧。我现在在做的一个项目,用rap开发的。rap开发的service binding,在maintain service注册时,开始注册的…

简单的个人博客网站设计 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

TEE安全系统SMC深入理解

1、TEE背景在文章开始之前提几个问题&#xff1a;Android手机中至少运行着几个操作系统OS&#xff1f;如何进入安全操作系统&#xff1f;异常等级和安全操作系统之间的关系&#xff1f;SMC调用的实质、约定及流程是什么&#xff1f;随着智能手机的普及&#xff0c;手机上数据的…

R语言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于预测时间序列数据

原文链接:http://tecdat.cn/?p5919在本文中&#xff0c;我将介绍ARMA&#xff0c;ARIMA&#xff08;Box-Jenkins&#xff09;&#xff0c;SARIMA和ARIMAX模型如何用于预测时间序列数据&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。使用滞后算子计算滞后差分…

[附源码]计算机毕业设计JAVA校园网学生成绩查询系统

[附源码]计算机毕业设计JAVA校园网学生成绩查询系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …

Android面试题——高级开发面试题二

一 面试题概述 回答自己理解的java虚拟机、gc机制Java多线程、线程池集合原理(hashmap,list)java虚引用封装、继承、多态的理解activity生命周期安卓activity和fragment数据传递Handler内存泄漏、内存溢出、内存抖动 原因及解决办法ANR原因以及解决办法性能优化、卡顿优化事件…

xshell与xftp

目录 1.什么是xshell 2.下载xshell与xftp 3.安装与操作xshell 4.什么是xftp 5.安装与操作xftp 6.xshell与xftp互联 1.什么是xshell Xshell是一个强大的安全终端模拟软件&#xff0c;它支持SSH1&#xff0c;SSH2&#xff0c; 以及Microsoft Windows平台的TELNET协议。. …

[Camunda BPMN进阶] 电商订单流程设计与调试

目录 摘要 基于BPMN的软件设计思想 电商订单流程业务场景 基本订单流程BPMN设计 1.最基本流程设计 2. 添加超时未付款自动取消功能 3. 添加15分钟付款提醒 4. 添加用户取消订单事件 进阶订单流程BPMN设计 1. 使用并行网关执行任务 2. 将具有相同事件分支的任务合并…

基于PHP+MySQL月子中心管理系统的设计与实现

月子中心管理系统是信息时代的产物,月子基本是每个适龄女子都会经历的一个特殊时期,尤其是在中国对月子的重视程度尤其的重要,只有让产妇和婴儿受到精心的照顾才能够让产妇更好的康复,才能够让婴儿更好的成长,所以越来越多的人关注到了月子期间的养护问题,为了能够让更多的月子…

安卓APP源码和报告——学生信息管理系统

学生信息管理系统APP演示视频《移动开发技术II》实践考核方案 适用网络工程&#xff08;网络软件开发&#xff09;2018级 一、考核内容&#xff1a; 环境配置及移动开发生命周期、控件的使用、用户界面设计、数据存储与访问、广播、服务、网络编程、蓝牙应用等知识点。 二、…

canal同步MySQL的binlog数据时踩了个大坑

背景 在同步MySQL数据到ES的场景中&#xff0c;选择了canal组件同步数据。 问题描述 在同步的时候发现canal-adapter中canal-adapter/conf/es7/product.yml 配置文件中sql 语句连表查询的时候会出现无法更新Elasticsearch 中数据的情况&#xff0c;而且日志没有提示异常&…

python使用opencv画圣诞树和画小星星函数

画星星函数&#xff1a; #img 图片 #x y 坐标 #size 大小 def darw_star(img,x,y,color,size40):poly_linenp.array([[x, y-size], [xint(size/4), y-int(size/4)], [xsize, y-int(size/4)],[xint(0.375*size),yint(size/4)],[xsize,ysize],\[x,yint(0.625*size)],[x-size,ysi…

分布式定时调度:xxl-job 万字详解

一.定时任务概述 1.定时任务认识 1.1.什么是定时任务 定时任务是按照指定时间周期运行任务。使用场景为在某个固定时间点执行&#xff0c;或者周期性的去执行某个任务&#xff0c;比如&#xff1a;每天晚上24点做数据汇总&#xff0c;定时发送短信等。 1.2.常见定时任务方案…

基于web的家电维修系统/家电维修管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的系统管理应运而生&#xff0c;各行各业相继进入信息管理时代&a…

生物素标记甾体化合物/多杀菌素探针分子/壳聚糖/聚乙二醇偶连基团为华生物提供

生物素标记的甾体化合物探针将D-生物素酰氯与胺反应,合成了新型生物素探针标记的甾体衍生物,经检测这些衍生物对某些肿瘤细胞株有较好的抗肿瘤活性,且对正常细胞株(HEK293T)没有明显的毒害作用。 生物素标记的多杀菌素探针分子&#xff0c;经检测验证&#xff0c;生物素标记多…

Python多字段排序函数——cmp_to_key()【LeetCode50天刷题计划寒假特别版(Day 1 — 最大数(11.40-12.20)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言使用方法例子一、题目最大数示例提示二、思路三、代码前言 python标准模块functools中的cmp_to_key可以将一个cmp函数变成一个key函数&#xff0c;从而支持自定…