首页 > 其他分享 >4-寻找两个正序数组的中位数

4-寻找两个正序数组的中位数

时间:2024-05-18 09:01:05浏览次数:13  
标签:正序 中位数 length allArry result 数组 nums1

题目:两个正序数组,找出他们的中位数(中间位置的数),算法的时间复杂度应该为 O(log (m+n))。

1.将两个数组组成一个新的数组,

int[] allArry = new int[nums1.length + nums2.length];
System.arraycopy(nums1, 0, allArry, 0, nums1.length);
System.arraycopy(nums2, 0, allArry, nums1.length, nums2.length);

2.将新数组中的元素排序(从小到大),

Arrays.sort(allArry);

3.用二分查找法,找出中位数

if (allArry.length % 2 == 0) {
            int sum = allArry[allArry.length / 2] + allArry[(allArry.length / 2) - 1];
            double result = sum / 2.;
            return result;
        } else {
            double result = (double) allArry[allArry.length / 2];
            return result;
        }

标签:正序,中位数,length,allArry,result,数组,nums1
From: https://www.cnblogs.com/moon-new-star/p/18198977

相关文章

  • 后缀数组(SA)
    后缀数组(SA)并非指数字的后缀,而针对字符串而生的算法。字符串的后缀指是指从某个位置开始到整个串末尾结束的一个特殊子串。后缀排序将所有后缀按照字典序排序,利用计数排序时间+倍增复杂度为\(O(nlogn)\) 。\(sa[i]:\)排名为\(i\)的后缀的起始位置。\(rk[i]:\)起始位置为\(......
  • js 判断数组中的所有值是否相同
    使用Set数据结构:将数组转换为Set,如果Set的长度为1,则说明数组中所有的值都相同。使用for循环:遍历数组,将每个元素与前面的元素进行比较,如果存在不同的元素,则说明数组中的所有值不相同。使用Array.prototype.every()方法:使用every方法遍历数组,判断数组中的每个元素是否......
  • springboot怎么将List集合数据转成JSON数组
    SpringBoot默认使用Jackson框架将Java对象转换成JSON格式。要转换List集合数据为JSON数组,可以采用以下两种方法:1.使用@ResponseBody注解在SpringBoot中,可以使用@ResponseBody注解标注要返回的List集合数据,让Spring自动将其转换成JSON数组。例如:@GetMapping("/list")@Respo......
  • NumPy 分割与搜索数组详解
    NumPy分割数组NumPy提供了np.array_split()函数来分割数组,将一个数组拆分成多个较小的子数组。基本用法语法:np.array_split(array,indices_or_sections,axis=None)array:要分割的NumPy数组。indices_or_sections:指定分割位置的整数列表或要包含每个子数组的元素数......
  • 《代码随想录》-3.长度最小的子数组
    题目:给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和≥s的长度最小的连续子数组,并返回其长度。如果不存在符合条件的子数组,返回0。滑动窗口:只用一个for循环,其索引指向窗口终点位置窗口是满足其和>=s的最小长度的连续数组当窗口大于等于s,起始位置就要......
  • 柔性数组
    什么是柔性数组柔性数组也称为变长数组,是一种动态数组的实现方式。与普通数组不同的是,柔性数组在定义时不需要明确指定数组大小,在程序运行时可以动态地分配和扩展数组大小,在程序运行时可以动态地分配和扩展数组大小柔性数组是通过C99标准中提供的结构体成员为未知长度的数......
  • 二维数组排序
    为了更灵活地控制排序字段和排序顺序,可以修改DataSorter类,使其能够通过参数指定排序字段和排序顺序。以下是实现方法:DataSorter类<?phpclassDataSorter{/***按指定字段和顺序排序二维数组**@paramarray$data要排序的二维数组*@param......
  • 108. 将有序数组转换为二叉搜索树(leetcode)
    https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/要点是分割左右区间,并且分割时需要注意left和right相加可能会超过int,但是本题不需要classSolution{publicTreeNodesortedArrayToBST(int[]nums){//有返回值写法......
  • shell函数和数组
    函数定义函数##第一种:简单常用函数名(){脚本(命令集合)}##第二种:function函数名{脚本内容(命令集合)}##第三种function函数名(){脚本(命令集合)}函数使用#!/bin/bashnum(){##num是定义的函数名称a=66echo${a}}num##这里的num是调用上面的num函数......
  • 数组和List互转
    数组转List数组转List,使用JDK中java.util.Arrays工具类的asList方法。importjava.util.Arrays;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){String[]strs={"aaa","bbb","ccc"};List......