Java真題實(shí)練掌握哈希表的使用
1.多數(shù)元素
題目描述

思路詳解
這個(gè)思路比較簡(jiǎn)單,先排序,排序過后遍歷如果后一個(gè)等于前一個(gè)輸出就好
代碼與結(jié)果
class Solution {
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length / 2];
}
}
2.數(shù)組中的k-diff數(shù)對(duì)
題目描述

思路詳解
這里我們采用排序和雙指針的方法。
我們首先把數(shù)組進(jìn)行排序,然后利用前后兩個(gè)指針遍歷數(shù)組,找出符合條件的組合。
注意:這里我們我們要注意結(jié)果的重復(fù),也要注意兩個(gè)指針前進(jìn)的條件。
代碼與結(jié)果
class Solution {
public int findPairs(int[] nums, int k) {
Arrays.sort(nums);
int n = nums.length, y = 0, res = 0;
for (int x = 0; x < n; x++) {
if (x == 0 || nums[x] != nums[x - 1]) {
while (y < n && (nums[y] < nums[x] + k || y <= x)) {
y++;
}
if (y < n && nums[y] == nums[x] + k) {
res++;
}
}
}
return res;
}
}
3.缺失的第一個(gè)正數(shù)
題目描述

思路詳解
這一題屬于比較困難的題目。
我們首先想到的就是排序然后遍歷,可是這違背了題目時(shí)間復(fù)雜度是常數(shù)的要求。
那么我們用哈希表進(jìn)行存儲(chǔ)遍歷呢,顯然這也超出了時(shí)間復(fù)雜度的限制。
小編也是參考了題解,現(xiàn)在就來用自己的話說說這一題的做法吧.
對(duì)數(shù)組進(jìn)行遍歷,對(duì)于遍歷到的數(shù) x,如果它在[1,N] 的范圍內(nèi),那么就將數(shù)組中的第x−1 個(gè)位置(注意:數(shù)組下標(biāo)從 0 開始)打上「標(biāo)記」。在遍歷結(jié)束之后,如果所有的位置都被打上了標(biāo)記,那么答案是N+1,否則答案是最小的沒有打上標(biāo)記的位置加 1。
這里是采用了仿哈希表的結(jié)構(gòu)。
代碼與結(jié)果
class Solution {
public int firstMissingPositive(int[] nums) {
int n = nums.length;
for (int i = 0; i < n; ++i) {
if (nums[i] <= 0) {
nums[i] = n + 1;
}
}
for (int i = 0; i < n; ++i) {
int num = Math.abs(nums[i]);
if (num <= n) {
nums[num - 1] = -Math.abs(nums[num - 1]);
}
}
for (int i = 0; i < n; ++i) {
if (nums[i] > 0) {
return i + 1;
}
}
return n + 1;
}
}到此這篇關(guān)于Java真題實(shí)練掌握哈希表的使用的文章就介紹到這了,更多相關(guān)Java哈希表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 實(shí)戰(zhàn)項(xiàng)目之疫情人員流動(dòng)管理系統(tǒng)詳解
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)疫情人員流動(dòng)管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
基于注解的springboot+mybatis的多數(shù)據(jù)源組件的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于注解的springboot+mybatis的多數(shù)據(jù)源組件的實(shí)現(xiàn),會(huì)使用到多個(gè)數(shù)據(jù)源,文中通過代碼講解的非常詳細(xì),需要的朋友可以參考下2021-04-04
用java等語言仿360首頁拼音輸入全模糊搜索和自動(dòng)換膚
這篇文章主要為大家詳細(xì)介紹了仿360首頁支持拼音輸入全模糊搜索和自動(dòng)換膚的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
idea創(chuàng)建properties文件,解決亂碼問題
這篇文章主要介紹了idea創(chuàng)建properties文件,解決亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
IntelliJ IDEA同步代碼時(shí)版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA同步代碼時(shí)版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
解決@ConfigurationProperties注解的使用及亂碼問題
這篇文章主要介紹了解決@ConfigurationProperties注解的使用及亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
spring boot 打包jar jar沒有主目錄清單問題的完美解決方法
這篇文章主要介紹了spring boot 打包jar jar沒有主目錄清單問題的解決方法,本文是小編第一次寫,希望對(duì)大家有所幫助2018-07-07

