力扣每日一題-統計和小于目標的下標對數目-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.pswp.cn/news/167321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167321.shtml
英文地址,請注明出處:http://en.pswp.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…