LeetCode4. 寻找两个有序数组的中位数(java)

Java实现 LeetCode 4 寻找两个有序数组的中位数 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4... 阅读详情

题目:

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。

示例:

在这里插入图片描述
代码:

  • 解法一
class Solution {
   public double findMedianSortedArrays(int[] nums1, int[] nums2) {
   //判断两个数组中若有一个数组为空
		if(nums1==null&&nums2==null) {
			return 0;
		}
		//创建一个新数组 长度为两个数组之和
		int[] nums = new int[nums1.length + nums2.length];
		//原数组元素遍历到新数组中
		for (int i = 0; i < nums1.length; i++) {
			nums[i] = nums1[i];
		}
		for (int i = 0; i < nums2.length; i++) {
			nums[nums1.length + i] = nums2[i];
		}
		//对数组进行排序
		Arrays.sort(nums);
		//判断数组个数奇偶 找出中位数
		if (nums.length % 2 == 0) {
			return ((nums[nums.length / 2]) + (nums[nums.length / 2 - 1])) / 2.0;
		} else {
			return nums[nums.length / 2];
		}
	}
}
  • 别人的代码
class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
		int nums2length = nums2.length;
		int[] r = new int[nums1.length + nums2length];

		int index = 0;
		int j = 0;
		for (int num : nums1) {
			while (j < nums2length && num > nums2[j]) {
				r[index] = nums2[j];
				j++;
				index++;
			}
			r[index] = num;
			index++;
		}
		for (; j < nums2length; j++) {
			r[index] = nums2[j];
			index++;
		}

		int mi = r.length / 2;
		return r.length % 2 == 1 ? r[mi] : (r[mi - 1] + r[mi]) / 2.0;
	}
}
华为OD机试 - 查找众数及中位数(Java) 中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000。查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。众数是指一组数据中出现次数量多的那个数,众数可以是多个。具体逻辑请看代码注释。输出众数组成的新数组的中位数。 阅读详情

相关推荐

SVPWM分析、各个扇区详细计算以及Matlab仿真

SVPWM分析以及各个扇区详细计算以及Matlab仿真说明目的两电平逆变器拓扑空间矢量扇区判断扇区内如何发波?矢量作用时间计算矢量切换时间的计算Simulink仿真/基于Matlab-R2014a版本 说明 第一次发文章,不太会用Markdown,word编辑的公式复制过来有些是乱码,因此都贴图了。 另外,本文公式和图片比较多,编辑工作量比较大,比较辛苦,转载的话,请注明出处,谢谢。 目的 由于在...

michaelf的博客 12万+

java快速查找中位数_用QuickSort快速查找中位数(median)

中位数(median)是一个排好序的元素中中间位置的元素,如果元素个数为偶数,则是中间两个元素的平均值。例如(3,1,5)的中位数是3,而(2,1,3,5)的中位数是2.5。查找中位数属于SelectionAlgorithms的一种。用快速排序可以做到每次divide之后,只需要conquer一个分支,时间复杂度为O(nlogn)。为便于比较,以下代码包含quicksort的算法实现:public...

weixin_42127835的博客 859

如何实现SOLIDWORKS阵列的“智能变更”?

有时,我们在设计一个零件时,零件上有一排阵列孔,同时零件有不同的长度,我们又希望可以做到零件长度改变时,这排孔可以按长度等距增减孔阵列的个数;或是零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那具体要怎么做呢?接下来,我们一起来看看怎么用SOLIDWORKS中简单的操作来实现这两种智能的变更: 零件长度加长或缩短时,这排孔要按长度等距增减孔阵列的个数。 零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那接下来,我们一起来看看怎么用简单的操作来实现这两种智能的

SOLIDWORKS艾金米 2080

java有序数组找中位数_有序数组中找中位数

题目:两个有序数组A和B,大小都是n,寻找这两个数组合并后的中位数。时间复杂度为O(logn)。中位数:如果数组的个数是奇数,那么中位数的值就是有序时处于中间的数;如果数组个数是偶数的,那么就是有序时中间两个数的平均值。方法一:合并时计数使用Merge Sort时的Merge操作,比较两个数组时候计数,当计数达到n时,就可以得到中位数,在归并的数组中,中位数为下标n-1和n的两个数的平均值。时间复...

weixin_42292855的博客 1402

Android自动化新方案:ESP32-C3蓝牙HID模拟触控与手势操作实战(附源码)

本文详细介绍了使用ESP32-C3通过蓝牙HID协议实现Android设备自动化操作的完整方案。该硬件方案成本低廉且能完美规避系统风控,可模拟鼠标移动、点击及复杂手势操作,延迟低于50毫秒,适用于游戏连招和应用测试等场景。文章包含完整的源码实现和性能优化技巧。

kotlin6android的博客 378

Open3D 使用RANSAC分割平面【2026最新版】

使用RANSAC从点云中分割平面,用segement_plane函数。博客长期更新,本文最新更新时间为:2026年2月28日。

点云侠的博客 37万+

java快速查找中位数_海量数据查找中位数

现在 有10亿个int型的数字(JAVA中 int 型占4B),以及一台可用内存为1GB的机器,如何找出这10亿个数字的中位数?中位数定义:数字排序之后,位于中间的那个数。比如将10亿个数字进行排序(位置从1到10亿),排序之后,位于第5亿个位置的那个数 就是中位数。一种方法是定义一个长度为10亿的整型数组,采用排序算法排序。但是:10亿个数字,每个数字在内存中占4B,10亿个数字完全加载到内存中...

weixin_30335379的博客 1725

数据挖掘实战-基于KMeans算法对超市客户进行聚类分群

本实验基于KMeans算法对超市客户进行了聚类分群。通过对客户购物数据进行聚类,我们成功将客户分为不同的群体。每个群体代表了具有相似购物行为和偏好的客户群体。通过实验结果,我们发现了客户群体之间的明显差异和共性。不同群体的客户在购买频率、购物金额和购买种类等方面有所区别。这为超市提供了重要的市场细分信息,帮助超市经营者更好地了解不同客户群体的需求和喜好,制定有针对性的营销策略和商品推荐,提高客户满意度和忠诚度。此外,实验还揭示了超市客户的购物行为规律,为超市优化商品陈列和促销策略提供了指导。

m0_64336780的博客 2万+

4、Java算法题之寻找两个有序数组的中位数

Java算法题之寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 =...

Tang_Xiaokang的博客 293

华为ensp、思科eve、华为ensp pro中通过cloud桥接本地网络和联通互联网的方法

华为ensp、思科eve中通过cloud桥接本地网络和联通互联网的方法

suofen9703的博客 420

实战优化!C#上位机串口通信卡顿问题:超时机制+数据缓存方案

串口名</param>/// <param name="baudRate">波特率

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1065

leetcode4——寻找两个有序数组的中位数——java实现

题目要求: 分析: 看到这个复杂度就想到二分查找,可是我并不知道怎么进行二分查找。 于是我看了大神的分析:传送门:寻找两个有序数组的中位数 这位大神就是将两个数组转化到 ...

阿花的IT历程 825

文献解读:结构方程模型SEM基础,小白看这个就基本够了

今天要解读的依然是一篇教学文献:The Basics of Structural Equation Modeling,文献作者是Diana Suhr, Ph.D. University of Northern Colorado。 文献链接: https://www.lexjansen.com/wuss/2006/tutorials/TUT-Suhr.pdf 结构方程模型是: 用来检验显变量与潜变量关系假设的综合性的统计技巧 用来表示,估计或者检验变量间理论关系的技巧 用来探究一系列潜变量和显变量因

Codewar的博客 6万+

【LeetCode】 4. Median of Two Sorted Arrays 寻找两个有序数组的中位数(Hard)(JAVA)

【LeetCode】 4. Median of Two Sorted Arrays 寻找两个有序数组的中位数(Hard)(JAVA) 题目地址: https://leetcode.com/problems/median-of-two-sorted-arrays/ 题目描述: There are two sorted arrays nums1 and nums2 of size m and n r...

qq_16927853的博客 210

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

力扣热门100题 - 4.寻找两个正序数组的中位数

力扣刷题记录

zxwyhzy的博客 923

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

leetcode-4-寻找两个有序数组的中位数-java

题目及测试 package pid004; /*寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 ...

今天吃了吗的博客 515

leetCode 4. 寻找两个有序数组的中位数(java)

题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays 著作权归领扣网...

qq_43796866的博客 170

leetcode 4. 寻找两个有序数组的中位数(Java版)

题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是...

L__ear的博客 942

leetcode 4.寻找两个有序数组的中位数 java

4.寻找两个有序数组的中位数 题目: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 我的想法:首先是搞不懂O(log(m...

qq_41984887的博客 200

leetcode第4题,寻找两个有序数组的中位数,java实现

一、归并排序法 此解答不满足题目要求:时间复杂度为O(log(m+n))。只是一个解决问题的思路。 运行结果 执行结果:通过 执行用时 :4 ms, 在所有 Java 提交中击败了37.21%的用户 内存消耗 :41.5 MB, 在所有 Java 提交中击败了97.21%的用户 代码与注释 class Solution { public double findMedianSortedAr...

qq_29168809的博客 370

LeetCode 4. 寻找两个有序数组的中位数(Java)

寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4...

nuts_and_bolts的博客 233

4.寻找两个有序数组的中位数-LeetCode4-java

题目:给定两个大小为 m 和 n 的有序数组nums1和nums2。 请找出这两个有序数组的中位数。要求算法的时间复杂度为O(log (m+n)) 。 示例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)/2 = 2.5 合并后(有序的)再找中位数 public double findMedianS...

来自火星的猫 208

LeetCode-4. 寻找两个有序数组的中位数-Java

//Log(m+n)解法,思路来源LeetCode class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int l1 = nums1!=null ? nums1.length : 0; int l2 = nums2!=null ? nu...

AlphaCat的博客 410
上一篇: LeetCode9. 回文数(Java)
下一篇: LeetCode5. 最长回文子串(Java)
inferno devil
博客等级 码龄9年 54粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值