LeetCode 153. Find Minimum in Rotated Sorted Array (在旋轉有序數組中找到最小值)

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e.,?0 1 2 4 5 6 7?might become?4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.

?


題目標簽:Array, Binary Search

  題目給了我們一個 旋轉有序 數組,讓我們找到最小值。如果是在還沒有旋轉的情況下,那么我們知道,最小值就是第一個數字。

  那么當遇到旋轉的情況呢,我們就需要找到那個 “斷點” 的兩個數字,換句話說,就是最大值和最小值,而且這兩個數字一定是相鄰的。

  我們來看一下例子:

  0 ?1 ?2 ?4 ?5 ?6 ?7  直接返回第一個數字

  1 ?2 ?4 ?5 ?6 ?7 ?0  返回7 和0 中小的那個數字

  2 ?4 ?5 ?6 ?7 ?0 ?1  

  4 ?5 ?6 ?7 ?0 ?1 ?2

  5 ?6 ?7 ?0 ?1 ?2 ?4

  6 ?7 ?0 ?1 ?2 ?4 ?5

  7 ?0 ?1 ?2 ?4 ?5 ?6

  利用二分法來找到 最大和最小的 兩個數字。

  rule 1: 如果 mid 小于 left, 意味著最大的數字在左邊,繼續去左邊找,把right = mid, 這里要包括mid,因為mid 可能是最小的數字;

  rule 2: 如果 mid 大于 right, 意味著最小的數字在右邊,繼續去右邊找,把left = mid, 這里要包括mid, 因為mid 可能是最大的數字。

  當left 和right 相鄰的時候,返回小的數字就可以了。

?

 

Java Solution:

Runtime beats 53.07%?

完成日期:08/30/2017

關鍵詞:Array, Binary search

關鍵點:旋轉中,min 和 max 必然是相鄰的,利用二分法找到min 和max

?

 1 class Solution 
 2 {
 3     public int findMin(int[] nums) 
 4     {
 5         if(nums.length == 1)
 6             return nums[0];
 7         
 8         int left = 0;
 9         int right = nums.length - 1;
10         
11         if(nums[left] < nums[right])
12             return nums[0];
13         
14         while(left + 1 != right)
15         {
16             int mid = left + (right - left) / 2;
17             
18             if(nums[mid] < nums[left]) // if left is greater than mid, move to left
19                 right = mid;
20             else if(nums[mid] > nums[right]) // if mid one is greater than right, move to right
21                 left = mid;
22         }
23         
24         // if there are only two number
25         return Math.min(nums[left], nums[right]);
26     }
27 }

參考資料:N/A

?

LeetCode 算法題目列表 -?LeetCode Algorithms Questions List

?

轉載于:https://www.cnblogs.com/jimmycheng/p/7456345.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253579.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253579.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253579.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YUV圖像

YUV420P&#xff0c;Y&#xff0c;U&#xff0c;V三個分量都是平面格式&#xff0c;分為 I420 和 YV12 。 I420 格式和 YV12 格式的不同處在U平面和V平面的位置不同。在I420格式中&#xff0c;U平面緊跟在Y平面之后&#xff0c;然后才是V平面&#xff08;即&#xff1a;YUV&…

色調映射(Tone Mapping)

一、概述 雖然HDR 圖像有較大的動態范圍,能更細致地反映真實場景,但他的缺點也很明顯。一是同尺寸的數據比低動態范圍圖像大,需要更大的存儲空間與傳輸帶寬。二是難以輸出,目前大多數顯示器、打印機等圖形輸出設備的動態范圍要比普通的高動態范圍圖像小得多。。因此,色調映…

實用軟件工具

1.突破百度網盤下載速度現在&#xff0c;使用 Aria2下載 Aria2-不限速全平臺下載利器但是百度網盤賬號會被限速 &#xff0c;沖會員解除正常限制網速2.Safari 預覽&#xff0c;將網頁轉化為自定義尺寸 PDF 3.清除Xcode 緩存 刪除模擬器運行緩存&#xff0c;找到Developer->…

[原創]Toolbar setNavigationIcon無效

最近在做一個Toolbar&#xff0c;setNavigationIcon()這個方法一直無效&#xff0c;說什么的都有&#xff0c;什么getSupportActionBar().setNavigationIcon()的&#xff0c;說設置style的&#xff0c;說放到setSupportActionBar()之后的。 其實沒有說全&#xff0c;還應該放到…

YUV格式詳解

分類&#xff1a; H.264 MPEG TV 2008-05-14 09:24 16181人閱讀 評論(21) 收藏 舉報 YUV是指亮度參量和色度參量分開表示的像素格式&#xff0c;而這樣分開的好處就是不但可以避免相互干擾&#xff0c;還可以降低色度的采樣率而不會對圖像質量影響太大。YUV是一個比較籠統地說…

KVM安裝、鏡像創建(一)

環境準備 VMware Workstation Pro啟動虛擬化 查看啟動的系統是否支持vmx或svm grep -E (vmx|svm) /proc/cpuinfo 備注&#xff1a;操作系統centos 7 KVM安裝 1、yum查看kvm安裝包 yum list |grep kvm 2、安裝 yum install -y qemu-kvm qemu-kvm-tools libvirt3、啟動libvirtd s…

Sensor 結構——前照、背照、堆棧

優異的工藝和技術可以使得即便不使用更新結構的CMOS,同樣擁有更好的量子效率、固有熱噪聲、增益、滿阱電荷、寬容度、靈敏度等關鍵型指標。在相同技術和工藝下,底大一級的確壓死人(全畫幅和aps-c)。人類的進步就是在不斷發現問題,解決問題。背照式以及堆棧式CMOS的出現,也…

少犯非智力錯誤

工作節省時間最重要的方法之一就是少犯非智力錯誤。 同事反饋說不能預覽&#xff0c;排查半天找不到問題&#xff0c;最后發現是IP地址配錯了。 現場問題同事搞半天找不出原因&#xff0c;結果一看是網域配錯了。 還有些問題開始排查定位不到原因&#xff0c;回頭看時才發現端口…

搭建分布式hadoop2.x集群

前期準備&#xff1a; 1.我這里用了三臺虛擬機&#xff0c;.默認已經配置好靜態IP和IP域名映射&#xff0c;它們相互之間可以ping通 第一臺&#xff1a;192.168.174.131 hadoopNumber01.medal.com 第二臺&#xff1a;192.168.174.132 hadoopNumber02.meda.com 第三臺…

ortp庫使用入門

原創作品&#xff0c;允許轉載&#xff0c;轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://ticktick.blog.51cto.com/823160/345642 我們知道&#xff0c; RTP&#xff08;Real-timeTransportProtocol&#xff09;是用于Internet上…

可測性設計技術

傳統的設計過程和測試過程是分開的&#xff0c;而且測試往往只在設計階段的后期才被考慮。近年來&#xff0c;測試越來越早地被考慮并出現在設計過程中&#xff0c;被稱為“可測性設計”。可測性設計的主要思路就是在設計之初就考慮關于測試方面的設計&#xff0c;并在設計階段…

優酷電視劇爬蟲代碼實現一:下載解析視頻網站頁面(3)補充知識點:htmlcleaner使用案例...

htmlcleaner 下載地址&#xff1a;htmlcleaner2_1.jar 源碼下載&#xff1a;htmlcleaner2_1-all.zip 寫一個測試用的html文件&#xff1a;html-clean-demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/D…

小程序開發-利用canvas實現保存二維碼海報到本機

場景及需求 在小程序開發過程中&#xff0c;經常需要實現保存某個頁面為帶小程序碼的二維碼海報圖片到本地&#xff0c;然后用于分享或者發朋友圈等操作。 主要技術點及小程序相關api 技術注意事項 小程序的canvas與H5 canvas使用api大部分一致&#xff0c;但由于小程序中沒有D…

Docker系統六:Docker網絡管理

Docker網絡 I. Docer的通信方式 默認情況下&#xff0c;Docker使用網橋&#xff08;brige&#xff09; NAT的通信模型. Docker啟動時會自動創建網橋Docker0&#xff0c;并配置ip 172.17.0.1/16 ifconfig docker0 docker0 Link encap:Ethernet HWaddr 02:42:e0:31:ac:10inet …

pthread_cond_wait

1. 首先pthread_cond_wait 的定義是這樣的 The pthread_cond_wait() andpthread_cond_timedwait() functions are used to block on a condition variable. They are called withmutex locked by the calling thread or undefined behaviour will result. These functions ato…

HDU 1525 Euclid's Game

題目大意&#xff1a; 題目給出了兩個正數a.b 每次操作&#xff0c;大的數減掉小的數的整數倍。一個數變為0 的時候結束。 誰先先把其中一個數減為0的獲勝。問誰可以贏。Stan是先手。 題目思路&#xff1a; 無論a,b的值為多少&#xff0c;局面&#xff1a;[a%b&#xff0c;b] 一…

SRAM BIST技術學習

MBIST 方法是目前大容量存儲器測試的主流技術&#xff0c;該技術利用芯片內部專門設計的BIST 電路進行自動化測試&#xff0c;能夠對嵌入式存儲器這種具有復雜電路結構的嵌入式模塊進行全面的測試。MBIST 電路將產生測試向量的電路模塊以及檢測測試結果的比較模塊都置于芯片的內…

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理 廣東職業技術學院 歐浩源 Z-Stack協議棧是一個基于任務輪詢方式的操作系統&#xff0c;其任務調度和資源分配由操作系統抽象層OSAL管理著。 你可以理解為&#xff1a;Z-Stack協議棧 OSAL操作系統 CC25…

CMOS圖像傳感器——SmartSens

近年來CIS發展成為增量市場,國產CIS廠商也踴躍布局,給業界帶來許多驚喜。思特威(上海)電子科技股份有限公司(SmartSens)正是國產CIS中亮眼的一家廠商。數據顯示,2020年思特威安防監控市場的CIS芯片出貨量為1.46億顆,繼續位居全球出貨量TOP1的位置;同年,思特威的新興領…

Servlet第二篇【Servlet調用圖、Servlet細節、ServletConfig、ServletContext】

Servlet的調用圖 前面我們已經學過了Servlet的生命周期了&#xff0c;我們根據Servlet的生命周期畫出Servlet的調用圖加深理解 Servlet的細節 一個已經注冊的Servlet可以被多次映射 同一個Servlet可以被映射到多個URL上。 <servlet><servlet-name>Demo1</servle…