劍指Offer之Java算法習(xí)題精講數(shù)組查找與字符串交集
題目一
數(shù)組題——二分查找法
寫一個(gè)函數(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ù)給定的字符串按照指定條件查找一個(gè)字符串所涵蓋的另一個(gè)字符串字符的最小子串
具體題目如下

解法
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)容請(qǐng)搜索腳本之家以前的文章或繼續(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種實(shí)現(xiàn)案例
- Java數(shù)組與字符串深入探索使用方法
相關(guān)文章
java高并發(fā)下CopyOnWriteArrayList替代ArrayList
這篇文章主要為大家介紹了java高并發(fā)下CopyOnWriteArrayList替代ArrayList的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項(xiàng)目的詳細(xì)步驟
這篇文章主要介紹了Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
java.lang.UnsupportedClassVersionError錯(cuò)誤的解決辦法(附圖文)
這篇文章主要給大家介紹了關(guān)于java.lang.UnsupportedClassVersionError錯(cuò)誤的解決辦法,"java.lang.UnsupportedClassVersionError"意味著您正在運(yùn)行的Java版本與編譯該類時(shí)使用的Java版本不兼容,需要的朋友可以參考下2023-10-10
springboot1.X和2.X中如何解決Bean名字相同時(shí)覆蓋
這篇文章主要介紹了springboot1.X和2.X中如何解決Bean名字相同時(shí)覆蓋,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
RabbitMQ延時(shí)隊(duì)列詳解與Java代碼實(shí)現(xiàn)
這篇文章主要介紹了RabbitMQ延時(shí)隊(duì)列詳解與Java代碼實(shí)現(xiàn),RabbitMQ 延時(shí)隊(duì)列是指消息在發(fā)送到隊(duì)列后,并不立即被消費(fèi)者消費(fèi),而是等待一段時(shí)間后再被消費(fèi)者消費(fèi)。這種隊(duì)列通常用于實(shí)現(xiàn)定時(shí)任務(wù),需要的朋友可以參考下2023-04-04

