Leetcode274

题目

274. H 指数 

思路

题目有点绕,最开始就想到了对数组进行排序,那就可以通过下标来得到有多少篇论文的引用大于等于当前论文的引用,如果大于了当前论文的引用量则将当前论文的引用量更新为h值。后面考虑到[3,3]这种情况,也就是论文的引用量为3 但是只发表了两篇论文,h指数应该为2,才发现 直接将当前论文的引用量和大于该引用量的论文数量中较小值来更新h值。

代码

public int hIndex(int[] citations) {int n = citations.length;// 只有一个值的时候 当论文引用量>1 则h指数为1 否则为0if(n <= 1){if(citations[0] >= 1){return 1;}return 0;}// 对其进行排序Arrays.sort(citations);int h = 0;for (int i = 0; i < n; i++) {int cite = citations[i];// 排在后面的论文引用都大于目前引用值 也就是至少有upH篇论文的引用次数>= 当前引用值int upH = n - i;// 更新h的值为当前引用值 和 引用大于该论文的论文数量 之间的较小值h = Math.max(h, Math.min(cite, upH));}return h;}

题目

 15. 三数之和

思路

最开始使用暴力,但是没办法去掉重复的,排序后跳过与上一个值相同的数进行暴力,会超时;看了题解,先确定第一个数,然后第三个数从最后一个位置(也就是最大值) 往前枚举,第二个数从第一个数开始向后枚举,三者之和大于0时,最后一个数向前走,当最后一个数与第二个数相同时,表示当前确定的第一个数字 与最小的两个数的和都大于0,第一个数往后继续枚举;

代码

class Solution {// public List<List<Integer>> threeSum(int[] nums) {//     Arrays.sort(nums);//     List<List<Integer>> re = new ArrayList<>();//     int len = nums.length;//     // 先确定第一个数//     for (int i = 0; i <= len - 3; i++) {//         // 需要跳开重复值//         if(i > 0 && nums[i] == nums[i-1]){//             continue;//         }//         int temp_a = nums[i];//         int target_b = 0 - temp_a;//         // 确定第二个数//         for (int j = i + 1; j <= len - 2; j++) {//             if(j > i + 1 && nums[j] == nums[j-1]){//                 continue;//             }//             int temp_b = nums[j];//             int target = target_b - temp_b;//             // 找第三个数//             for (int k = j + 1; k < len ; k++) {//                 if(k > j + 1 && nums[k] == nums[k-1]){//                     continue;//                 }//                 if(nums[k] == target){//                     List<Integer> temp = new ArrayList<>();//                     temp.add(temp_a);//                     temp.add(temp_b);//                     temp.add(target);//                     re.add(temp);//                 }//             }//         }//     }//     return re;// }public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);List<List<Integer>> re = new ArrayList<>();int len = nums.length;// 先确定第一个数for (int i = 0; i <= len - 3; i++) {// 需要跳开重复值if(i > 0 && nums[i] == nums[i-1]){continue;}int temp_a = nums[i];int k = len - 1;// 确定第二个数for (int j = i + 1; j <= len - 2; j++) {if(j > i + 1 && nums[j] == nums[j-1]){continue;}int temp_b = nums[j];// 保证第三个数在第二个数的右边while (j < k && temp_a + temp_b + nums[k] > 0){k--;}if( k == j){break;}if(temp_a + temp_b + nums[k] == 0){List<Integer> list = new ArrayList<Integer>();list.add(temp_a);list.add(temp_b);list.add(nums[k]);re.add(list);}}}return re;}
}

 

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

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

相关文章

String.intern()的作用

在Java中&#xff0c;String.intern() 是一个非常特殊的方法&#xff0c;它用于处理字符串常量池。字符串常量池&#xff08;String Pool&#xff09;是Java堆内存的一个特定区域&#xff0c;用来存储字符串字面量和显式调用 intern() 方法的字符串实例。这个池的目的是避免在J…

商务分析方法与工具(四):Python的趣味快捷-简单函数你真的会用吗?

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

SolidWorks进行热力学有限元分析一、模型建立

1.话不多说按照我的操作来 2.这一步鼠标移到中心点直接拉就行 3.这里选单位&#xff0c;继续按照操作来 4.选中这个边&#xff0c;直接拉&#xff0c;输入尺寸后确定&#xff0c;其他边同理 5.鼠标右键设置厚度 6.右键零件&#xff0c;然后编辑材料&#xff0c;给他赋予你需要的…

游戏辅助 -- 实战找人物对象基址

本节课在线学习视频&#xff1a; https://pan.quark.cn/s/3e83f4568031 一、打开CE工具&#xff0c;加载游戏进程 二、搜索人物血量144&#xff0c;选择首次扫描 三、进入游戏&#xff0c;让人物血量发生变化&#xff0c;搜索减少的数值 四、发现绿色的数值&#xff0c;一般绿…

Stable Diffusion:AI绘画的新纪元

摘要&#xff1a; Stable Diffusion&#xff08;SD&#xff09;作为AI绘画领域的新星&#xff0c;以其开源免费、强大的生成能力和高度的自定义性&#xff0c;正在引领一场艺术与技术的革命。本文旨在为读者提供Stable Diffusion的全面介绍&#xff0c;包括其原理、核心组件、安…

linux的信号量的使用

1.信号量 在多线程情况下&#xff0c;线程要进入关键代码就得获取信号量&#xff08;钥匙&#xff09;{sem_init(&sem, 0, 0);}&#xff0c;没有信号量的情况下就一直等待sem_wait(&sem)&#xff0c;只到别人把钥匙&#xff08;sem_post(&sem)&#xff09;给你。 …

分析错误ValueError: could not determine the shape of object type ‘Series‘

这个错误提示 ValueError: could not determine the shape of object type Series 通常发生在尝试将 pandas 的 Series 直接转换为 PyTorch 的 tensor 时&#xff0c;尤其是当 Series 的数据类型不明确或者包含非数值类型的数据时。为了修正这个问题&#xff0c;确保在转换之前…

npx 有什么作用跟意义?为什么要有 npx?什么场景使用?

npx 是 npm 从 v5.2.0 开始新增了 npx 命令&#xff0c;> 该版本会自动安装 npx&#xff0c;如果不能使用就手动安装一下&#xff1a; $ npm install -g npxnpx 的作用 npm 只能管理包的依赖&#xff0c;npx 则可以快捷的运用包中的命令行工具和其他可执行文件&#xff0c…

如何做好一个活动策划?

活动策划的关键要素是什么&#xff1f; 首先&#xff0c;要明确一个概念:做活动就是走钢丝&#xff0c;没有保险的高空走钢丝!因为&#xff0c;活动没有“彩排”&#xff0c;只有现场"直播”! 无论什么类型的活动&#xff0c;人数是50人还是2000人&#xff0c;也不论预算…

预定类小程序源码搭建包含各行业+源码开源可二开+详细图文搭建部署教程

在数字化浪潮席卷的今天&#xff0c;各行各业都急需找到与顾客连接的新方式。为了满足这一需求&#xff0c;很多店铺和企业都推出了预定类小程序&#xff0c;分享一款开源版预订类小程序源码&#xff0c;一站式解决方案&#xff0c;覆盖餐饮、旅游、美容、医疗、教育等多个行业…

java--GUI

目录 GUI&#xff08;Graphical User Interface&#xff09; swing 窗口(JFrame) 面板(JPanel) 流水布局(FlowLayout) 边界布局(BorderLayout) ​编辑 网格布局(GridLayout) 按钮(JButton) 标签组件&#xff0c;用来设置文字(JLabel) 单行文本框组件(JTextField) 多…

使用Java编写的简单彩票中奖概率计算器

前言 在当今社会&#xff0c;彩票已经成为许多人追逐梦想和改变生活的一种方式。然而&#xff0c;中奖的概率却是一个让人犹豫和兴奋的话题。在这篇文章中&#xff0c;我们将探讨如何使用Java编程语言实现一个简单的彩票中奖概率计算器。通过这个计算器&#xff0c;我们可以根…

【星海随笔】windows 上跑MySQL

step one 使用 WSL 在 Windows 上安装 Linux wsl官方文档 在管理员模式下打开 PowerShell windows上安装wsl wsl --install查看哪些是可用的 wsl --list --onlineC:\Windows\System32\drivers\hosts docker-desktop下载官网&#xff1a;Install Docker Desktop on Windows …

Spark面试整理-Spark和Flink的区别

Apache Spark和Apache Flink都是流行的大数据处理框架,但它们在设计理念、性能特性以及适用的使用场景上有所不同。以下是Spark和Flink之间的一些主要区别: 处理模型 Spark:最初设计为批处理框架,后来通过Spark Streaming引入了对流处理的支持。但在Spark Streaming中,流处…

关于执行CLAM的代码的一些需要记录的点

文章链接&#xff1a;[2004.09666] Data Efficient and Weakly Supervised Computational Pathology on Whole Slide Images (arxiv.org) 代码链接&#xff1a;GitHub - mahmoodlab/CLAM: Data-efficient and weakly supervised computational pathology on whole slide images…

不上班,我靠这5份赚钱副业养活了自己

在这个快节奏的社会里&#xff0c;很多人都在为生活奔波忙碌。今天&#xff0c;就让我来跟大家分享一下我的“躺平”秘籍吧&#xff01; 这一个月来&#xff0c;我没有上班&#xff0c;但好在有副业养活自己。有时候&#xff0c;我真的觉得有一份自己喜欢的自媒体副业挺好的。…

web 基础之 HTTP 请求

web 基础 网上冲浪 就是在互联网(internet)上获取各种信息&#xff0c;进行工作&#xff0c;或者娱乐&#xff0c;他的英文表示surfing the Internet&#xff0c;因 “surfing”d的意思是冲浪&#xff0c;即成为网上冲浪&#xff0c;这是一种形象说法&#xff0c; 也是一个非…

推荐网站(5)Pika文字生成视频,ai视频创作

今天推荐一个网站&#xff0c;Pika文字生成视频&#xff0c;通过问题描述&#xff0c;帮我们生成对应的视频&#xff0c;非常的实用。 比如输入&#xff1a;一只小狗在河边洗澡 当然我们还可以在生成的视频上编辑 点击编辑后出来一些属性&#xff0c;可以修改区域&#xff0c…

安卓玩机工具----一键备份手机分区 防止全檫除或者格机导致安全数据分区丢失

工具说明; 目前玩机root后有很多格机脚本。模块等等误刷会导致基带信号等等问题&#xff0c;在前面的博文中我有介绍过备份主要数据分区的重要性 。其实对于不了解root和不安装有些模块 外挂等等需要的友友不建议对手机进行root。root后对于手机安全性会有所降低。对于玩家来说…

nn.TransformerEncoderLayer详细解释,使用方法!!

nn.TransformerEncoderLayer nn.TransformerEncoderLayer 是 PyTorch 的 torch.nn 模块中提供的一个类&#xff0c;用于实现 Transformer 编码器的一个单独的层。Transformer 编码器层通常包括一个自注意力机制和一个前馈神经网络&#xff0c;中间可能还包含层归一化&#xff…