今天小編給大家分享一下java怎么實(shí)現(xiàn)非下降數(shù)組的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
站在用戶的角度思考問題,與客戶深入溝通,找到井岡山網(wǎng)站設(shè)計(jì)與井岡山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋井岡山地區(qū)。
給出包含n個(gè)整數(shù)的數(shù)組,你的任務(wù)是檢查它是否可以通過修改至多一個(gè)元素變成非下降的。一個(gè)非下降的數(shù)組array對(duì)于所有的i(1<=i 樣例1: ⅰ 輸入: [4,2,3] ⅱ 輸出: True ⅲ 說明: 可以把第一個(gè)數(shù)4修改為1,得到[1,2,3]為非下降的數(shù)組 樣例2: ⅰ 輸入: [4,2,1] ⅱ 輸出: False ⅲ 說明: 無法通過修改至多一個(gè)元素使數(shù)組變?yōu)榉窍陆档摹?/p> a.簡(jiǎn)單的思考可以得到,情況無非為三種:不需要修改就滿足條件的、修改一個(gè)元素可滿足條件的和修改一個(gè)元素也無法滿足條件的。對(duì)于第一種情況,只需遍歷數(shù)組看是否滿足數(shù)組的每一項(xiàng)都大于等于前一項(xiàng),滿足則返回true。對(duì)于第二種情況,可以枚舉要修改的那個(gè)數(shù)array[i],再去檢查array[i]之前的數(shù)是否是非下降的,array[i]之后的數(shù)是否是非下降的,最后還應(yīng)該檢查array[i-1]<=array[i+1]是否成立(如果array[i]位于邊界則無需檢查),如果成立則可以將array[i]改為array[i-1]和array[i+1]之間的任何數(shù)使數(shù)組變?yōu)榉窍陆禂?shù)組,這是情況二,返回true,如果對(duì)于所有的i都不成立,則為情況三,返回false。這樣做的時(shí)間復(fù)雜度為O(n^2),額外空間復(fù)雜度為O(1)。 b.修改一個(gè)數(shù)以后可以變成非下降的數(shù)組滿足什么條件呢?顯然,這樣的數(shù)組應(yīng)當(dāng)滿足只存在一對(duì)相鄰的數(shù)不滿足非下降的條件,即只存在唯一的i(1<=i Java版本:
以上就是“java怎么實(shí)現(xiàn)非下降數(shù)組”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。