JS求數(shù)組最大間距問題(leetcode164題)

TIM截圖20190522200350.png

原題
給定一個(gè)無序的數(shù)組,找出數(shù)組在排序之后,相鄰元素之間最大的差值。

如果數(shù)組元素個(gè)數(shù)小于 2,則返回 0。

示例 1:

輸入: [3,6,9,1]
輸出: 3
解釋: 排序后的數(shù)組是 [1,3,6,9], 其中相鄰元素 (3,6) 和 (6,9) 之間都存在最大差值 3。
示例 2:

輸入: [10]
輸出: 0
解釋: 數(shù)組元素個(gè)數(shù)小于 2,因此返回 0。
說明:

你可以假設(shè)數(shù)組中所有元素都是非負(fù)整數(shù),且數(shù)值在 32 位有符號整數(shù)范圍內(nèi)。
請嘗試在線性時(shí)間復(fù)雜度和空間復(fù)雜度的條件下解決此問題。

這個(gè)問題我寫了三種方法 最后一種評分最高

//求數(shù)組最大區(qū)間  常規(guī)做法  方法一
var array1=[3,11,12,14,100,200,500,-1000]
array1.sort((a,b)=>{return b-a})
var code=0
for(var i=0;i<array1.length-1;i++){
    var now=array1[i]
     
   if(Math.abs(now-array1[i+1])>code){
     code=Math.abs(now-array1[i+1])
   }
}


//在排序之中比較大小 一邊比較一邊排序 方法二
var array2=[3,11,12,14,1000,200,500,10,5,8,9,-1000]
code=0
result=0
for(var i=0;i<array2.length-1;i++){
  
     for(var j=0;j<array2.length-1-i;j++){
          if(array2[j]>array2[j+1]){
               code=array2[j]
               array2[j]=array2[j+1]
               array2[j+1]=code
          }
     }
     if(i>0){
      var a=(array2[array2.length-i])
      var b=(array2[array2.length-i-1])

       if((a-b)>result){
         result=a-b
         
       }
       
     }

    result=Math.max(array2[1]-array2[0],result)
}
//方法三 
var nums=[100,4,2,800,10,10000,-100000] 
result3=0

for(var i=0;i<nums.length-1;i++){

    var index=0
    var min=nums[i]
   
     for(var j=i+1;j<nums.length;j++){
      
       
            if(min>nums[j]){
                min=nums[j]
                index=j
             
            }

     }
    
   if(index!==0){
        nums[index]=nums[i]
        nums[i]=min

   }


     if(i>0){
        if(nums[i]-nums[i-1]>result3){
          result3=(nums[i]-nums[i-1])
        }
     }

     if(i==nums.length-2){
        result3=Math.max((nums[nums.length-1]-nums[nums.length-2]),result3)
     }
    
}

在排序中比較要注意排序完的臨界點(diǎn)的前一位和后一位再相減 再比較一次

TIM截圖20190522200323.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,352評論 0 2
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的,因此網(wǎng)頁是網(wǎng)絡(luò)信息傳遞的載體。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 4,953評論 0 0
  • 在我的博客冒泡排序、插入排序、快速排序、堆排序、歸并排序總結(jié)中介紹了幾種經(jīng)典的排序方法,其中快速排序、堆排序和歸并...
    小怪獸大作戰(zhàn)閱讀 2,228評論 1 6
  • 年初圣丹斯的爆款恐怖片《遺傳厄運(yùn)》終于揭開了面紗,講述隨著外婆的死亡家族中一系列詭異的事件隨之發(fā)生,原本就不太安穩(wěn)...
    沙沙庫閱讀 1,070評論 0 2

友情鏈接更多精彩內(nèi)容