力扣每日一题-统计和小于目标的下标对数目-2023.11.24

    力扣每日一题:统计和小于目标的下标对数目

开篇

 今天这道力扣打卡题写得我好狼狈,一开始思路有点问题,后面就是对自己的代码到处缝缝补补,最后蒙混过关。只能分享一下大佬的代码,然后我帮大家分享代码的思路。

题目链接: 2824.统计和小于目标的下标对数目

题目描述

在这里插入图片描述

代码思路

 这道题自己写的时候思路比较混乱,于是找了位大佬的代码,自己修改完善了一下,然后来分析。
1.根据题目的要求,我们可以发现,如果对nums集合进行排序,并不会影响结果,所以果断使用sort排序

Collections.sort(nums);

我以前只用过数组的sort排序,集合的排序我是第一次使用,真香

2.然后因为是两个值的运算,可以使用双指针法,一个从左到右,一个从右到左。利用左指针进行for循环,然后用while循环进行判断当相加大于目标值时,右指针左移,直至停止移动,此时两个指针的距离就是符合条件的数目。然后左指针右移,进行下一个循环。

代码纯享版

class Solution {public int countPairs(List<Integer> nums, int target) {if(nums.size() <= 1) return 0;Collections.sort(nums);int sum = 0;for (int i = 0, j = nums.size() - 1; i < j; i++) {while (i < j && nums.get(i) + nums.get(j) >= target) {j--;}sum += j - i;}return sum;}
}

代码逐行解析版

class Solution {public int countPairs(List<Integer> nums, int target) {if(nums.size() <= 1) return 0; //集合长度小于1,数目位0Collections.sort(nums); //对集合进行sort排序int sum = 0; //统计数目for (int i = 0, j = nums.size() - 1; i < j; i++) { //初始时左指针i=0,右指针j=nums.size() - 1while (i < j && nums.get(i) + nums.get(j) >= target) { //让右指针左移到满足要求的位置j--;}sum += j - i; //两个指针的距离就是这次循环中满足条件的个数,然后i++让左指针右移,进入下一次循环}return sum;//返回统计数目}
}

我的代码

我的思路也是双指针,但由于没有和上面的解法一样排除掉一些一定不成立的过程,而且思路比较混乱,所以就不作为主要思路来分析了。

class Solution {public int countPairs(List<Integer> nums, int target) {if(nums.size() <= 1) return 0;Collections.sort(nums);int left = 0, right = 1;int sum = 0;while(left < nums.size() - 1){if(nums.get(left) + nums.get(right) >= target){ //不符合要求时left++; right = left + 1;if(right > nums.size() - 1) break;}else if(nums.get(left) + nums.get(right) < target ){ //符合要求时sum++;if(right < nums.size() - 1) right++; //根据right所在的不同情况就行移动else {left++;right = left + 1;}}}return sum;}
}

结语

 如果对这道题的分享对您有帮助,可以点个关注,我会每天更新力扣题目的讲解,与大伙儿一起向前迈进!

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

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

相关文章

大模型能否生成搜索引擎的未来?

文&#xff5c;郝 鑫 编&#xff5c;刘雨琦 ChatGPT火爆之前&#xff0c;水面下&#xff0c;也有中国公司也在朝着智能助手的方向努力。夸克便是其中之一。在GPT风靡科技圈后&#xff0c;国内就开始陆续冒出一些大模型厂商。对当时夸克而言&#xff0c;做大模型毋庸置疑&am…

django(千锋教育)

创建一个django项目 官网下载python最新版本 配置到环境变量中 打开intlij编辑器 创建django项目 安装django&#xff1a;pip install django 创建django项目: django-admin startproject django01 创建djangoAPP&#xff1a;python manage.py startapp App 启动&#xff1a…

设置定时自动请求测试_自动定时循环发送http_post请求---postman工作笔记001

其实就是创建接口文件夹的时候,有个monitor collection 用来监听接口执行情况,这里就可以设置 可以看到多久执行一次对吧,这里可以设置每几分钟执行一次,一共执行多少次等等 但是这里要说明一下,如果需要使用monitor功能,必须需要登录, 所以如果这里点击monitor collection…

媒体增加日活量的有效策略

随着数字媒体的蓬勃发展&#xff0c;提高日活量成为媒体平台追求的重要目标之一。日活量的增加不仅意味着更广泛的影响力&#xff0c;还能为媒体平台带来更多的商业机会。以下是一些有效的策略&#xff0c;可帮助媒体提高日活量&#xff1a; admaoyan猫眼聚合 内容优质化&#…

**QT与目标板联合调试_断点仿真**

原文地址: https://blog.csdn.net/u012851408/article/details/86715626

仙女麻麻看过来~这是不是你们在找的外套?

分享女儿的秋冬穿搭 时尚与美观兼具的毛毛外套 洋气百搭不挑人穿 谁穿对都好看系列 经典宽松版型 不臃肿对身材包容性很强 小编墙裂推荐哦&#xff01;&#xff01;

NFT Insider115:The Sandbox开设元宇宙Diorama快闪店,​YGG Web3 游戏峰会已开幕

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#…

RevCol:可逆的柱状神经网络

文章目录 摘要1、简介2、方法2.1、Multi-LeVEl ReVERsible Unit2.2、可逆列架构2.2.1、MACRo设计2.2.2、MicRo 设计 2.3、中间监督 3、实验部分3.1、图像分类3.2、目标检测3.3、语义分割3.4、与SOTA基础模型的系统级比较3.5、更多分析实验3.5.1、可逆列架构的性能提升3.5.2、可…

贵金属交易指南:如何在市场中获利?

贵金属市场一直以来都是投资者追逐利润的热门选择&#xff0c;然而&#xff0c;贵金属市场波动较大&#xff0c;在市场中获利并非易事。想要成功&#xff0c;需要理解市场动态和采取适当的策略。万洲金业将为您提供一些实用的贵金属交易指南&#xff0c;帮助您在市场中获利。 …

PostgreSQL create or replace view和重建视图 有什么区别?

一、 replace vs 重建 遇到开发提了个问题&#xff0c;create or replace view和重建视图&#xff08;dropcreate&#xff09;有什么区别&#xff0c;查询资料整理了一下。 1. create or replace 当存在同名视图时&#xff0c;尝试将其替换新视图语句必须与现有视图查询具有相…

LeetCode算法题解(动态规划,背包问题)|LeetCode1049. 最后一块石头的重量 II、LeetCode494. 目标和

一、LeetCode1049. 最后一块石头的重量 II 题目链接&#xff1a;1049. 最后一块石头的重量 II 题目描述&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将…

springboot2.1升级到2.7 actuator丢失部分metrics端点

项目场景&#xff1a; 项目需要升级springboot从2.1升级至2.7 问题描述 发现之前的metrics后面的jvm相关的端口丢了 原因分析&#xff1a; 找到这样一篇博文https://blog.csdn.net/CL_YD/article/details/120309094&#xff0c;这篇博文意思是对的&#xff0c;但是写的不太好…

Java基于springoot开发的企业招聘求职网站

演示视频&#xff1a; https://www.bilibili.com/video/BV1xw411n7Tu/?share_sourcecopy_web&vd_source11344bb73ef9b33550b8202d07ae139b 技术&#xff1a;springootmysqlvuejsbootstrappoi制作word模板 主要功能&#xff1a;求职者可以注册发布简历&#xff0c;选择简…

案例018:基于微信小程序的实习记录系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

【python入门篇】函数(6)

这一节将详细介绍Python中函数的用法&#xff0c;包括函数的定义、调用、参数、返回值、作用域等。 函数的概述&#xff1a; Python函数是一种封装了特定任务的可重用代码块。通过将程序分解为更小、更具体的任务&#xff0c;函数提供了一种有效的方式来组织和管理代码&#xf…

保姆级连接FusionInsight MRS kerberos Hive

数新网络&#xff0c;让每个人享受数据的价值https://xie.infoq.cn/link?targethttps%3A%2F%2Fwww.datacyber.com%2F 概述 本文将介绍在华为云 FusionInsight MRS&#xff08;Managed Relational Service&#xff09;的Kerberos环境中&#xff0c;如何使用Java和DBeaver实现远…

threejs创建一个旋转的正方体【完整代码】

效果&#xff1a; 中文网three.js docs 1.搭建环境 安装three 首先我们需要新建一个项目 vue/react都可 这里以vue为演示 npm i three 找到一个新的页面 在页面script的地方导入three import * as THREE from "three" 或者自己逐个导入 import {PerspectiveC…

京东采销面对面,洞悉行业新趋势 京东3C数码生态大会在武汉圆满举行

为促进湖北省3C数码产业发展&#xff0c;本地企业降本增效、促进行业交流、充分发挥京东集团全链路生态服务能力&#xff0c;支持地方3C特色产业提质增量。2023年11月23日&#xff0c;由京东零售、京东物流主办&#xff0c;湖北省电子商务行业协会联合协办的“聚力共赢、携手共…

【Kotlin精简】第9章 Kotlin Flow

1 前言 上一章节我们学习了Kotlin的协程【Kotlin精简】第8章 协程&#xff0c;我们知道 协程实质是对线程切换的封装&#xff0c;能更加安全实现异步代码同步化&#xff0c;本质上协程、线程都是服务于并发场景下&#xff0c;其中协程是协作式任务&#xff0c;线程是抢占式任务…

保姆级 ARM64 CPU架构下安装部署Docker + rancher + K8S 说明文档

1 K8S 简介 K8S是Kubernetes的简称&#xff0c;是一个开源的容器编排平台&#xff0c;用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的系统。它可以跨多个主机聚集在一起&#xff0c;控制和自动化应用的部署与更新。 K8S 架构 Kubernete…