LeetCode 兩數之和 + 三數之和

兩數之和 簡單題

思路:一個Map,key是數值,value是該數值對應的下標,遍歷的時候判斷一下當前數組下標對應的值在map里有沒有可組合成target的(具體體現為在map里找target-nums【i】),如果有,直接返回,沒有的話就加進去,繼續找。

需要掌握的方法:map的get和containsKey

cl
ass Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> m = new HashMap<>();m.put(nums[0],0);for(int i = 1;i<nums.length;++i){if(m.containsKey(target - nums[i])){return new int[]{m.get(target-nums[i]),i};}else{m.put(nums[i],i);}}return new int[0];}
}

三數之和 雙指針 中等題

思路:嚴格上來說算三個指針,一個i是維護當前遍歷到的數字下標,之后的l和r指針是從i所處位置開始,在i + 1 到len - 1這個區間中尋找nums[i]的相反數。

class Solution {// -4 -1 -1 0 1 2 // public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);int len = nums.length;if(len < 2){return res;}for(int i = 0;i < len;++i){int l = i + 1;int r = len - 1;if( i != 0 && nums[i] == nums[i-1]){//與前一個數重復需要調過,不然會出現重復的三元組continue;}while(l < r){if(nums[i] + nums[l] + nums[r] == 0){if(l > i + 1 && nums[l] == nums[l-1] ){//這里也是同理l ++ ;continue;}List<Integer> tmp = new ArrayList<>();tmp.add(nums[i]);tmp.add(nums[l]);tmp.add(nums[r]);l++;r--;//左右指針都要變,因為l變大的話,還希望結果有可能為0,r必須變小(意味著nums[r]變小)res.add(tmp);}else if(nums[i] + nums[l] + nums[r] < 0){//nums[l] 太小了,把它變大一點l ++;}   else{r --;}}}return res;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23864.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23864.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IDEA使用阿里通義靈碼插件

在這個AI火熱的時代&#xff0c;純手工寫代碼已經有點out了&#xff0c;使用AI插件可以幫我們快速寫代碼&#xff0c;起碼能省去寫那些簡單、重復性的代碼&#xff0c;大大提高編碼效率&#xff0c;在這里我推薦使用阿里的通義靈碼 注冊安裝 安裝注冊好后&#xff0c;打開我們…

深入探索Spark MLlib:大數據時代的機器學習利器

隨著大數據技術的迅猛發展,機器學習在各行各業的應用日益廣泛。Apache Spark作為大數據處理的利器,其內置的機器學習庫MLlib(Machine Learning Library)提供了一套高效、易用的工具,用于處理和分析海量數據。本文將深入探討Spark MLlib,介紹其核心功能和應用場景,并通過…

【流媒體】音頻相關概念詳解

文章目錄 一、前言二、概述三、音頻相關概念1、采樣率&#xff08;Sampling rate&#xff09;2、位深度&#xff08;Bit depth&#xff09;3、比特率&#xff08;Bit rate&#xff09;4、聲道&#xff08;Audio channel&#xff09;5、音頻幀6、音頻編碼7、音頻解碼 一、前言 …

【vuejs】$nextTick的原理分析和使用場景

1. $nextTick 概述 Vue.js 框架中的 $nextTick 是一個非常重要的 API&#xff0c;它允許開發者延遲回調函數的執行直到下次 DOM 更新循環之后。這意味著&#xff0c;當開發者在 Vue 組件中更改了數據&#xff0c;并且想要在 DOM 更新完成后執行某些操作時&#xff0c;可以使用…

總結開發過程遇到問題有哪些渠道可以尋找解決方案

羅列一下 百度、ChatGPT/訊飛星火等AI、Stack Overflow、github isssue 平時開發過程遇到問題的主要解決方式都是百度或者詢問ChatGPT&#xff0c;當然在java中這兩個方式也能解決百分之80的問題&#xff0c;畢竟java的社區圈夠熱鬧。 如何優雅地使用 Stack Overflow 一、學…

搭建自己的DNS服務器

個人名片 &#x1f393;作者簡介&#xff1a;java領域優質創作者 &#x1f310;個人主頁&#xff1a;碼農阿豪 &#x1f4de;工作室&#xff1a;新空間代碼工作室&#xff08;提供各種軟件服務&#xff09; &#x1f48c;個人郵箱&#xff1a;[2435024119qq.com] &#x1f4f1…

腺苷調節合成高密度脂蛋白用于三陰性乳腺癌的化學免疫治療

引用信息 文 章&#xff1a;Adenosine-modulating synthetic high-density lipoprotein for chemoimmunotherapy of triple-negative breast cancer 期 刊&#xff1a;Journal of Controlled Release&#xff08;影響因子&#xff1a;10.8&#xff09; 發表時間&am…

深入探索:十種流行的深度神經網絡及其運作原理

算法 深入探索&#xff1a;十種流行的深度神經網絡及其運作原理一、卷積神經網絡&#xff08;CNN&#xff09;基本原理工作方式 二、循環神經網絡&#xff08;RNN&#xff09;基本原理工作方式 三、長短期記憶網絡&#xff08;LSTM&#xff09;基本原理工作方式 四、門控循環單…

jupyter notebook默認工作目錄修改

jupyter notebook默認工作目錄修改 1、問題2、如何修改jupyter notebook默認工作目錄 1、問題 anaconda安裝好之后&#xff0c;我們啟動jupyter notebook會發現其默認工作目錄是在C盤&#xff0c;將工作目錄放在C盤會讓C盤很快被撐爆&#xff0c;我們應該將jupyter notebook默…

進階篇01——存儲引擎

MySQL體系結構 存儲引擎 引擎有多種類型&#xff0c;MySQL支持多種存儲引擎&#xff0c;默認的存儲引擎為innodb。不同的存儲引擎有不同的特點&#xff0c;適用不同的場景。 innodb存儲引擎 簡介 innodb的邏輯存儲結構 MYISAM存儲引擎 memory存儲引擎 三種引擎特點對比&…

2024華為數通HCIP-datacom最新題庫(變題更新③)

請注意&#xff0c;華為HCIP-Datacom考試831已變題 請注意&#xff0c;華為HCIP-Datacom考試831已變題 請注意&#xff0c;華為HCIP-Datacom考試831已變題 近期打算考HCIP的朋友注意了&#xff0c;如果你準備去考試&#xff0c;還是用的之前的題庫&#xff0c;切記暫緩。 1、…

融合創新:Web3如何重新定義網絡生態

隨著區塊鏈技術的不斷發展和Web3時代的到來&#xff0c;我們正在見證著互聯網生態的巨大變革。Web3將傳統的互聯網架構轉變為去中心化、開放、透明的新網絡生態&#xff0c;為創新和合作提供了全新的可能性。本文將深入探討Web3如何重新定義網絡生態&#xff0c;探索融合創新的…

Flutter中防抖動和節流策略

什么是防抖和節流&#xff1f; 函數節流&#xff08;throttle&#xff09;與 函數防抖&#xff08;debounce&#xff09;都是為了限制函數的執行頻次&#xff0c;以優化函數觸發頻率過高導致的響應速度跟不上觸發頻率&#xff0c;出現延遲&#xff0c;假死或卡頓的現象 是應對頻…

WeTrade亮相Traders Fair展會菲律賓站

2024年5月25日&#xff0c;菲律賓交易博覽會在馬尼拉的Edsa香格里拉酒店圓滿落幕。 WeTrade作為本次交易博覽會的重要戰略合作伙伴、參展商和贊助商&#xff0c;吸引了全球各界人士的廣泛關注。 現場&#xff0c;我們的菲律賓團隊與客戶進行了親密的面對面交流&#xff0c;并…

優思學院|精益生產學習過程中如何提高自己的能力水平?

精益生產是一項實踐多過理論的課題。 優思學院認為實踐并不限于實際的工作&#xff0c;日常的思考同樣重要&#xff0c;例如我們會要求學員在學習時不斷思考各種事物&#xff0c;不限于自己的企業。例如當你去到一家餐廳&#xff0c;你能夠觀察到什么浪費&#xff1f;你可否把…

Docker pull鏡像一直在Waiting無法下載,根本解決方法

1、現象描述&#xff1a; docker pull 拉去鏡像一直在等待&#xff0c;無法下載&#xff0c;最后失敗如下&#xff1a; [rootlocalhost docker]# docker pull zookeeper Using default tag: latest latest: Pulling from library/zookeeper 2ec76a50fe7c: Retrying in 1 seco…

特征交叉系列:DCN-Mix 混合低秩交叉網絡理論和實踐

DCN-Mix和DCN-V2的關系 DCN-Mix(a mixture of low-rank DCN)是基于DCN-V2的改進版&#xff0c;它提出使用矩陣分解來降低DCN-V2的時間空間復雜度&#xff0c;又引入多次矩陣分解來達到類似混合專家網絡MOE的效果從而提升交叉層的表征能力&#xff0c;若讀者對DCN-V2不甚了解可…

linux shell腳本啟動springboot服務

1.腳本代碼 xx.sh&#xff0c;自己隨意命名 #!/bin/bash# 設置變量 JAR_NAME"xssq-1.0.0.jar" JAR_PATH"./$JAR_NAME" PID0#檢查程序是否在運行 is_exist(){PIDps -ef|grep $JAR_NAME|grep -v grep|awk {print $2} #如果不存在返回1&#xff0c;存在返回0…

評價GPT-4的方案

評價GPT-4的方案 引言: 隨著人工智能技術的不斷發展,自然語言處理領域取得了顯著的突破。其中,GPT-4作為最新的大型語言模型之一,備受關注。本方案旨在對GPT-4進行全面評價,包括其技術特點、性能表現、應用場景以及潛在的影響等方面。 一、技術特點 1. 模型規模和參數數…

微信小程序使用自定義tabbar被組件遮擋調試層級沒有用

在我自定義使用tabbar的時候&#xff0c;發現使用vant weapp環形進度條的時候把tabbar給遮擋了&#xff0c;查看了文章說沒什么好的解決辦法&#xff0c;但是也有&#xff0c;鏈接在此 我是直接修改的自定義組件的標簽view標簽和image標簽都使用cover- image和cover-view代替就…