牛客NC413 两个升序数组的中位数【hard 数组,模拟 Java、Go、PHP】

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/b3b59248e61f499482eaba636305474b

思路

	直接模拟2个数组有顺序放到一个数组中help中如果help长度为奇数,返回中间的数如果help长度为偶数,返回中间2个数的和除以2

参考答案java

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums1 int整型ArrayList* @param nums2 int整型ArrayList* @return double浮点型*/public double Median (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {int n = nums1.size();int m = nums2.size();int len = n + m;int[] help = new int[len];int x = n - 1;int y = m - 1;int z = len - 1;while (x >= 0 && y >= 0) {if (nums1.get(x) > nums2.get(y)) {help[z--] = nums1.get(x--);} else {help[z--] = nums2.get(y--);}}while (x >= 0) {help[z--] = nums1.get(x--);}while (y >= 0) {help[z--] = nums2.get(y--);}if (len % 2 == 1) {int i1 = (len - 1) / 2;return (double) help[i1];} else {int i1 = (len - 1) / 2;int i2 = i1 + 1;return ((double) help[i1] + (double) help[i2]) / 2;}}
}

参考答案Go

package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums1 int整型一维数组* @param nums2 int整型一维数组* @return double浮点型*/
func Median(nums1 []int, nums2 []int) float64 {n := len(nums1)m := len(nums2)length := n + mhelp := make([]float64, length)x := n - 1y := m - 1z := length - 1for x >= 0 && y >= 0 {if nums1[x] >= nums2[y] {help[z] = float64(nums1[x])z--x--} else {help[z] = float64(nums2[y])z--y--}}for x >= 0 {help[z] = float64(nums1[x])z--x--}for y >= 0 {help[z] = float64(nums2[y])z--y--}if length%2 == 1 {return help[(length-1)/2]} else {i1 := (length - 1) / 2i2 := i1 + 1return (help[i1] + help[i2]) / 2}
}

参考答案PHP

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums1 int整型一维数组* @param nums2 int整型一维数组* @return double浮点型*/
function Median( $nums1 ,  $nums2 )
{$n = count($nums1);$m= count($nums2);$len = $n+$m;$help = array();$x = $n-1;$y = $m-1;$z = $len-1;while ($x >=0 && $y>=0){if($nums1[$x] >$nums2[$y]){$help[$z--] = $nums1[$x--];}else{$help[$z--] = $nums2[$y--];}}while ($x>=0){$help[$z--]= $nums1[$x--];}while ($y>=0){$help[$z--] = $nums2[$y--];}if($len%2 ==1){return $help[intval(($len-1)/2)];}else{$i1 = intval(($len-1)/2);$i2 =$i1+1;return ($help[$i1]+$help[$i2])/2;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web程序设计-实验01 HTML与CSS基础

【实验主题】 影视详情页设计 【实验任务】 1、浏览并分析多个影视详情页面&#xff08;详见参考资源&#xff0c;建议自行搜索更多影视网站&#xff09;的主要元素构成和版面设计&#xff0c;借鉴并构思预期效果。 2、新建 index.html文件&#xff0c;合理运用HTML标记编写…

opc ua 环境构建(记录一)

1、准备 Siemens Simatic WinCC v7.5 二、配置 SIMATIC NET与S7-200 SMART 集成以太网口OPC 通信(TIA平台) 硬件: ①S7-200 SMART ②PC 机 ( 集成以太网卡) 软件: ① STEP 7-Micro/WIN SMART V2.1 ② STEP 7 Professional(TIA Portal V13 SP1 Upd 9) ③ SIMATIC NET …

TG-12F使用SDK对接阿里生活物联网平台

文章目录 前言一、注意二、准备1. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;程序运行时库。按顺序逐条执行命令&#xff1a;2. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;依赖软件包。按照顺序逐条执行命令&#xff1a;3. 安装Python依赖包。按照顺序逐条执行命…

关于部署ELK和EFLKD的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana&#xff08;展示数据可视化界面&#xff09;1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…

【Docker】docker快速安装部署fastdfs的镜像详细记录

部署nacos的docker镜像 第一步&#xff1a; 获取fastdfs镜像1、查看镜像列表2、创建本地映射文件夹 第二步&#xff1a;运行镜像1.使用docker镜像构建tracker服务2.使用docker镜像构建Storage服务3.Storage服务中默认安装了Nginx服务4.如果需要修改storage则配置则进到以下目录…

word中插入mathtype版的符号后,行间距变大解决方法

问题 解决方法 选中该段&#xff0c;设置固定值行距。如果是宋体&#xff0c;小四&#xff0c;1.25行距&#xff0c;那么固定值就为20磅。 成功解决。

人工智能领域最新动态:技术创新推动行业进步

导语&#xff1a;人工智能技术作为当今科技发展的前沿&#xff0c;其应用领域日益广泛。本文将为您梳理近期人工智能领域的最新资讯&#xff0c;让您紧跟AI技术的步伐。 一、AI预测洪水事件&#xff0c;助力灾害预警 近期发表在国际著名学术期刊《自然》的一篇环境研究论文称…

小程序中配置scss

找到&#xff1a;project.config.json 文件 setting 模块下添加&#xff1a; "useCompilerPlugins": ["sass","其他的样式类型"] 配置完成后&#xff0c;重启开发工具&#xff0c;并新建文件 结果&#xff1a;

C++从入门到精通——类和对象(中篇)

1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中什么都没有吗&#xff1f;并不是的&#xff0c;任何一个类在我们不写的情况下&#xff0c;都会自动生成下面6个默认成员函数。 class Date {}; 2. 构造函数 2.1 概念 对于以下的日期类&am…

点击按钮(文字)调起elementUI大图预览

时隔一年&#xff0c;我又回来了 ~ 最近在做后台&#xff0c;遇到一个需求&#xff0c;就是点击“查看详情”按钮&#xff0c;调起elementUI的大图预览功能&#xff0c;预览多张图片&#xff0c;如下图&#xff1a; 首先想到的是使用element-ui的el-image组件&#xff0c;但它是…

【React】路由鉴权

需求 未登录状态下&#xff0c;某些页面不可访问&#xff0c;白名单中的页面可以。未登录状态下&#xff0c;拦截通过修改url直接访问页面。判断是否有权访问某些页面。路由规则中每个页面都需要调用某个接口。 前提 使用的react-router-dom6 &#xff0c;这里只是举例&…

idea 中运行spring boot 项目报 Command line is too long的解决办法。

Command line is too long 在这里选择edit configures 选择shrten command line , 选择 jar manifest 运行即可。