中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

建設(shè)網(wǎng)站的實(shí)驗(yàn)?zāi)康暮鸵饬xseo網(wǎng)站優(yōu)化平臺(tái)

建設(shè)網(wǎng)站的實(shí)驗(yàn)?zāi)康暮鸵饬x,seo網(wǎng)站優(yōu)化平臺(tái),食品貿(mào)易網(wǎng)站建設(shè)案例,最新聊天記錄做圖網(wǎng)站題目及測(cè)試 package pid035; /*35. 搜索插入位置 給定一個(gè)排序數(shù)組和一個(gè)目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會(huì)被按順序插入的位置。請(qǐng)必須使用時(shí)間復(fù)雜度為 O(log n) 的算法。示例 1:輸入: nums …

題目及測(cè)試

package pid035;
/*35. 搜索插入位置
給定一個(gè)排序數(shù)組和一個(gè)目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會(huì)被按順序插入的位置。請(qǐng)必須使用時(shí)間復(fù)雜度為 O(log n) 的算法。示例 1:輸入: nums = [1,3,5,6], target = 5
輸出: 2
示例 2:輸入: nums = [1,3,5,6], target = 2
輸出: 1
示例 3:輸入: nums = [1,3,5,6], target = 7
輸出: 4提示:1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 為 無重復(fù)元素 的 升序 排列數(shù)組
-104 <= target <= 104
*/public class main {public static void main(String[] args) {int[][] testTable = {{1,3,5,6},{1,2,5,6},{1,5,5,6},{2,4,5,6}};for (int[] ito : testTable) {test(ito,3);}}private static void test(int[] ito,int k) {Solution solution = new Solution();int rtn;long begin = System.currentTimeMillis();for (int i = 0; i < ito.length; i++) {System.out.print(ito[i]+" ");		    }System.out.println();//開始時(shí)打印數(shù)組rtn = solution.searchInsert(ito,k);//執(zhí)行程序long end = System.currentTimeMillis();	//System.out.println(ito + ": rtn=" + rtn);System.out.println("rtn=" +rtn);System.out.println();System.out.println("耗時(shí):" + (end - begin) + "ms");System.out.println("-------------------");}}

解法1(成功,0ms,極快)

1 題目要找的元素是:第一個(gè)大于等于 target 的元素的下標(biāo);
2 數(shù)組的長(zhǎng)度 len 也有可能是問題的答案,「參考代碼 2」設(shè)置 right = len 不是因?yàn)樵O(shè)置區(qū)間是「左閉右開」,而是因?yàn)?len 本來就有可能是問題的答案。
上面 2 個(gè)小點(diǎn),都需要仔細(xì)分析題意和幾個(gè)示例得到,任何模板都不能回答這樣的問題。

根據(jù)示例,分析題目要我們返回的「插入元素的位置」是什么。
根據(jù)「示例 3」:
輸入: [1, 3, 5, 6], 7
輸出: 4
我們知道:如果目標(biāo)元素 嚴(yán)格大于 輸入數(shù)組中的最后一個(gè)元素,題目需要我們返回?cái)?shù)組的最后一個(gè)元素的下標(biāo) +1(也就是數(shù)組的長(zhǎng)度)。

又根據(jù)「示例 2」:
輸入: [1, 3, 5, 6], 2
輸出: 1
我們知道:題目要我們返回第 1 個(gè) 大于等于 目標(biāo)元素 2 的下標(biāo)(分析出這一點(diǎn)非常重要),因此返回 1。等于的情況可以看「示例 1」。

思路分析
在有序數(shù)組中查找,可以使用「二分查找」。
根據(jù)「題意分析」中對(duì)示例的描述:

情況 1:如果當(dāng)前 mid 看到的數(shù)值嚴(yán)格小于 target,那么 mid 以及 mid 左邊的所有元素就一定不是「插入元素的位置」,因此下一輪搜索區(qū)間是 [mid + 1..right],下一輪把 left 移動(dòng)到 mid + 1 位置,因此設(shè)置 left = mid + 1;
情況 2:否則,如果 mid 看到的數(shù)值大于等于 target,那么 mid 可能是「插入元素的位置」,mid 的右邊一定不存在「插入元素的位置」。如果 mid 的左邊不存在「插入元素的位置」,我們才可以說 mid 是「插入元素的位置」。因此下一輪搜索區(qū)間是 [left..mid],下一輪把 right 移動(dòng)到 mid 位置,因此設(shè)置 right = mid。
說明:上面的兩點(diǎn)中,「情況 2」其實(shí)不用分析得那么細(xì)致, 因?yàn)橹灰盖闆r 1」的區(qū)間分析是正確的,「情況 2」一定是「情況 1」得到的區(qū)間的反面區(qū)間。
說明:while (left < right) 表示當(dāng) left 與 right 重合的時(shí)候,搜索終止。根據(jù)題意和示例,區(qū)間 nums[left..right] 里一定存在「插入元素的位置」,且 while 循環(huán)里只把區(qū)間分成兩個(gè)部分,退出循環(huán)的時(shí)候一定有 left == right 成立,因此返回 left 或者 right 都可以。

既然 len 也有可能是答案,可以在初始化的時(shí)候,把 right 設(shè)置成 len,在一開始的時(shí)候就不需要特殊判斷了。
?

package pid035;
class Solution {public int searchInsert(int[] nums, int target) {int length = nums.length;if(length == 0){return 0;}if(target <= nums[0]){return 0;}if(target == nums[length-1]){return length-1;}if(target > nums[length-1]){return length;}int begin = 0;int end = length;int mid = 0;while(begin<end){mid = (begin+end)/2;if(nums[mid] == target){return mid;}if(nums[mid] < target){begin = mid+1;}if(nums[mid] > target){end = mid;}}return begin;}
}

http://m.risenshineclean.com/news/64469.html

相關(guān)文章:

  • 上海建設(shè)網(wǎng)站的公司b2b網(wǎng)站推廣排名
  • 申請(qǐng)網(wǎng)頁空間的網(wǎng)站搜索引擎簡(jiǎn)稱seo
  • 廣州網(wǎng)站建設(shè)制作的公司個(gè)人怎么創(chuàng)建網(wǎng)站
  • 傳奇sf 新開網(wǎng)站百度博客收錄提交入口
  • 搜索引擎優(yōu)化的基本方法成都網(wǎng)站優(yōu)化公司
  • 新手做淘寶哪個(gè)網(wǎng)站比較好網(wǎng)絡(luò)營(yíng)銷七個(gè)步驟
  • 做網(wǎng)站用什么軟件語言網(wǎng)站ip查詢
  • 網(wǎng)站建設(shè)1磁力多多
  • 網(wǎng)站品牌推廣韶山seo快速排名
  • 做網(wǎng)站備案照片的要求網(wǎng)頁自助建站
  • 購(gòu)物網(wǎng)站建設(shè)平臺(tái)莆田seo推廣公司
  • 哪個(gè)網(wǎng)站可以做簡(jiǎn)歷郵件營(yíng)銷
  • 我是做裝修的怎么樣投資網(wǎng)站個(gè)人網(wǎng)站規(guī)劃書模板
  • 安陽市網(wǎng)站建設(shè)的公司企點(diǎn)qq
  • 企業(yè)如何進(jìn)行網(wǎng)站建設(shè)產(chǎn)品網(wǎng)絡(luò)營(yíng)銷方案
  • 在百度云上建設(shè)網(wǎng)站如何把品牌推廣出去
  • 廈門網(wǎng)站建設(shè)價(jià)google應(yīng)用商店
  • 哪里有手機(jī)網(wǎng)站定制服務(wù)器手機(jī)怎么自己制作網(wǎng)頁
  • b2b網(wǎng)站黃頁怎么讓百度快速收錄網(wǎng)站
  • 如何建設(shè)阿里巴巴網(wǎng)站游戲推廣平臺(tái)
  • 青海省建設(shè)廳建管處網(wǎng)站排名點(diǎn)擊工具
  • 前端做網(wǎng)站使用的軟件工具信息流廣告是什么
  • 英文網(wǎng)站建設(shè)電話咨詢網(wǎng)頁做推廣
  • 沌口網(wǎng)站建設(shè)seo是什么品牌
  • 手機(jī)做網(wǎng)站用什么軟件深圳優(yōu)化公司哪家好
  • 網(wǎng)站功能定制優(yōu)化手機(jī)流暢度的軟件
  • 網(wǎng)站如何做搜狗搜索引擎百度下載安裝免費(fèi)
  • 網(wǎng)站建設(shè)公司 南京谷歌seo優(yōu)化中文章
  • 河南省建筑一體化平臺(tái)管理系統(tǒng)seo技術(shù)經(jīng)理
  • php動(dòng)態(tài)網(wǎng)站開發(fā)期末考試網(wǎng)絡(luò)營(yíng)銷公司名字大全