日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

java双指针的简单理解

發(fā)布時間:2024/8/26 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 java双指针的简单理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、什么是雙指針

雙指針我所理解地是在遍歷對象時,不是使用單個指針進行訪問,而是使用兩個相同方向或者相反方向的指針進行遍歷,從而達到相應的目的。

在JAVA中并沒有像C/C++指針地概念,所以這里所說的雙指針是指索引,游標或可迭代對象等。

雙指針在鏈表中也有很多用處,比如前面寫到過的找出鏈表中的倒數(shù)第k個結點,就巧妙地利用到了雙指針,此外,判斷鏈表中是否有環(huán)也可以使用雙指針,設兩個快慢指針,讓快指針一次移動兩步,慢指針一次移動一步,若鏈表中有環(huán),那么快指針與慢指針一定能夠相遇,若兩者沒有相遇,說明鏈表中沒有環(huán)。還有如果要給出鏈表中的中間的結點,也可以使用快慢指針,讓快指針一次移動兩步,慢指針一次移動一步,當快指針剛好到達鏈表的末尾時,慢指針所指向的正好是中間的結點(對于奇數(shù)個結點,就是中間中的一個,若是偶數(shù)個結點,是中間結點中的后一個,即length / 2);

由此看出,雙指針的思想就是建立兩個指針,這兩個指針可以使相同方向,一般前進的速度不同或者兩者的前進順序不一致;也可能是相反的方向,通過使用相關的變量控制來達到我們的目的。

二、例子:

給定一個包含 n 個整數(shù)的數(shù)組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重復的三元組。

注意:答案中不可以包含重復的三元組。

例如, 給定數(shù)組 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[

[-1, 0, 1],

[-1, -1, 2]

]

1.思路:

將數(shù)組進行排序。
將三數(shù)問題轉換成兩數(shù)問題(構建for循環(huán))。
對于兩數(shù)問題使用雙指針求解。

2.代碼

public List<List<Integer>> threeSum(int[] nums) {
           Arrays.sort(nums);
        List<List<Integer>> ls = new ArrayList<>();
 
        for (int i = 0; i < nums.length - 2; i++) {
            if (i == 0 || (i > 0 && nums[i] != nums[i - 1])) {  // 跳過可能重復的答案
 
                int l = i + 1, r = nums.length - 1, sum = 0 - nums[i];
                while (l < r) {
                    if (nums[l] + nums[r] == sum) {
                        ls.add(Arrays.asList(nums[i], nums[l], nums[r]));
                        while (l < r && nums[l] == nums[l + 1]) l++;
                        while (l < r && nums[r] == nums[r - 1]) r--;
                        l++;
                        r--;
                    } else if (nums[l] + nums[r] < sum) {
                        while (l < r && nums[l] == nums[l + 1]) l++;   // 跳過重復值
                        l++;
                    } else {
                        while (l < r && nums[r] == nums[r - 1]) r--;
                        r--;
                    }
                }
            }
        }
        return ls;
    }

總結

以上是生活随笔為你收集整理的java双指针的简单理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三上悠亚影音先锋 | 蕾丝视频污 | 熟妇人妻一区二区三区四区 | 豆花av| 久操青青 | 欧州一区二区三区 | 日韩电影在线观看一区二区 | 成人www视频 | 性www| 国产成人8x视频一区二区 | 青青偷拍视频 | 欧美日韩在线播放 | 石原莉奈在线播放 | 18禁免费观看网站 | 爱爱中文字幕 | 极品销魂美女一区二区 | 欧美少妇网 | 福利一区二区在线 | 国产精品999.| 高清国产一区二区三区四区五区 | 亚洲小视频在线播放 | 蜜臀一区二区三区精品免费视频 | 99在线观看免费视频 | 国产69视频在线观看 | 日本天堂网在线 | 伊人成年网 | 手机av网| 按摩毛片| 欧美草比视频 | www.youjizz.com日本 | 一本色道综合久久欧美日韩精品 | 人人爽人人| 午夜免费激情视频 | 亚洲丝袜在线观看 | 91九色国产在线 | 日韩精品视频免费在线观看 | xxxxwww一片 | 中文字幕av免费观看 | 好男人.www| 国产亚洲欧美精品久久久久久 | 午夜啊啊啊 | 欧美一区二区三区免费视频 | 国产3级在线 | 日韩二区 | 国产老熟女伦老熟妇露脸 | 中国黄色在线视频 | 激情五月在线 | 国产精品欧美久久久久天天影视 | 摸一摸操一操 | 蜜桃av免费 | 午夜影院啊啊啊 | а天堂中文在线官网 | 天天综合网站 | 国产精品羞羞答答 | 人妻久久久一区二区三区 | 人人射人人射 | 浪潮av一区二区三区 | 欧美最猛性xxxxx(亚洲精品) | 国产精品一区网站 | 嫩草在线观看视频 | 色图自拍| 偷拍夫妻性生活 | 都市激情中文字幕 | 日韩一二三四 | 影音先锋欧美在线 | 午夜私人影院 | 一级黄色网址 | 日本啪啪啪一区二区 | 久久重口味 | 亚洲国产理论 | 色哟哟在线| 日韩少妇一区二区三区 | 日韩全黄| 在线激情av | 色秀av | 亚洲国产私拍精品国模在线观看 | 国产在线自 | 天天撸天天射 | 台湾佬av| 色哟哟黄色 | 黄瓜视频在线免费看 | 日韩欧美123 | 久久久久免费精品 | 91久久精品国产91久久 | 黄色污污视频 | 欧美日韩不卡合集视频 | 日本三级中文字幕在线观看 | 中文字幕一区二区三区电影 | 成人精品在线视频 | 成人午夜激情 | 国产91在线播放精品91 | 中文天堂在线视频 | 亚洲第一页中文字幕 | 久久国产这里只有精品 | 成人亚洲网站 | 欧美精品手机在线 | 丰满大乳国产精品 | 国产精品宾馆在线 | 国产一区二区黄色 |