劍指Offer之Java算法習(xí)題精講數(shù)組查找與字符串交集
題目一
數(shù)組題——二分查找法
寫一個函數(shù)查找給定的數(shù)組中指定的數(shù)值
具體題目如下
?解法
class Solution { public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; while(left<=right){ int mid = left+(right-left)/2; if(nums[mid]==target){ return mid; }else if(nums[mid]>target){ right = mid - 1; }else if(nums[mid]<target){ left = mid + 1; } } return -1; } }
題目二
數(shù)組題——查找數(shù)組中元素位置
根據(jù)給定的數(shù)組按照指定條件查找首尾元素位置
具體題目如下
?解法:
class Solution { public int[] searchRange(int[] nums, int target) { int[] res = {-1,-1}; int left = 0; int right = nums.length-1; while(left<=right){ int mid = left+(right-left)/2; if(nums[mid] == target){ res[0] = mid; right = mid-1; }else if(nums[mid]>target){ right = mid - 1; }else if(nums[mid]<target){ left = mid+1; } } left = 0; right = nums.length-1; while(left<=right){ int mid = left+(right-left)/2; if(nums[mid] == target){ res[1] = mid; left = mid+1; }else if(nums[mid]>target){ right = mid - 1; }else if(nums[mid]<target){ left = mid+1; } } return res; } }
題目三
字符串題——查找字符串交集
根據(jù)給定的字符串按照指定條件查找一個字符串所涵蓋的另一個字符串字符的最小子串
具體題目如下
解法
class Solution { public String minWindow(String s, String t) { if(s == null || s == "" || t == null || t == "" || s.length() < t.length()){ return ""; } int[] need = new int[128]; int[] have = new int[128]; for (int i = 0; i < t.length(); i++) { need[t.charAt(i)]++; } int left = 0, right = 0; int min = s.length() + 1, count = 0, start = 0; while (right < s.length()){ char r = s.charAt(right); if (need[r] == 0) { right++; continue; } if (have[r] < need[r]) { count++; } have[r]++; right++; while (count == t.length()){ if (right - left < min) { min = right - left; start = left; } char l = s.charAt(left); if (need[l] == 0) { left++; continue; } if (have[l] == need[l]) { count--; } have[l]--; left++; } } if (min == s.length() + 1) { return ""; } return s.substring(start, start + min); } }
到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講數(shù)組查找與字符串交集的文章就介紹到這了,更多相關(guān)Java 數(shù)組查找內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串題
- 劍指Offer之Java算法習(xí)題精講N叉樹的遍歷及數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
- 劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹
- 關(guān)于java數(shù)組與字符串相互轉(zhuǎn)換的問題
- java 字符串轉(zhuǎn)化為字符數(shù)組的3種實現(xiàn)案例
- Java數(shù)組與字符串深入探索使用方法
相關(guān)文章
java高并發(fā)下CopyOnWriteArrayList替代ArrayList
這篇文章主要為大家介紹了java高并發(fā)下CopyOnWriteArrayList替代ArrayList的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項目的詳細步驟
這篇文章主要介紹了Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項目,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10java.lang.UnsupportedClassVersionError錯誤的解決辦法(附圖文)
這篇文章主要給大家介紹了關(guān)于java.lang.UnsupportedClassVersionError錯誤的解決辦法,"java.lang.UnsupportedClassVersionError"意味著您正在運行的Java版本與編譯該類時使用的Java版本不兼容,需要的朋友可以參考下2023-10-10springboot1.X和2.X中如何解決Bean名字相同時覆蓋
這篇文章主要介紹了springboot1.X和2.X中如何解決Bean名字相同時覆蓋,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03