劍指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)容請搜索腳本之家以前的文章或繼續(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)文章
mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例
這篇文章主要介紹了mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06
Maven一鍵部署Springboot到Docker倉庫為自動化做準(zhǔn)備(推薦)
這篇文章主要介紹了Maven一鍵部署Springboot到Docker倉庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Spring Boot 中的 @ConditionalOnBean 注解作用及基
在 Spring Boot 中,@ConditionalOnBean 可以幫助我們根據(jù) 是否存在特定 Bean 來 動態(tài)注冊 Bean,廣泛用于 按需加載、自動配置 等場景,本文給大家介紹Spring Boot 中的 @ConditionalOnBean 注解,感興趣的朋友一起看看吧2025-04-04
mybatis自定義參數(shù)類型轉(zhuǎn)換器數(shù)據(jù)庫字段加密脫敏
這篇文章主要為大家介紹了mybatis自定義參數(shù)類型轉(zhuǎn)換器數(shù)據(jù)庫字段加密脫敏,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
關(guān)于MyBaties的基本配置標(biāo)簽總結(jié)
今天給大家?guī)淼氖顷P(guān)于MyBaties基礎(chǔ)的相關(guān)知識,文章圍繞著MyBaties的基本配置標(biāo)簽展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Java創(chuàng)建數(shù)組的幾種方式總結(jié)
下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10

