|
復(fù)制代碼 代碼如下:
static void Reverse(int[] array, int begin, int end)
{
...
}
Reverse方法的作用是將array數(shù)組中,從begin下標(biāo)到end下標(biāo)之間的元素反序一下,如一個數(shù)組初始值是[1, 2, 3, 4, 5, 6],begin為1,end為4,那么當(dāng)調(diào)用了Reverse之后,array數(shù)組中的元素便依次成為[1, 5, 4, 3, 2, 6],其中從array[1]到array[4]之前的元素被反序了。此外補(bǔ)充一點……其實本不用補(bǔ)充:這個方法需要對傳入?yún)?shù)的正確性進(jìn)行校驗,如果用戶調(diào)用該方法時傳入了非法的參數(shù),那么則需要拋出異常,并寫清原因。您可以使用您喜歡的語言來實現(xiàn):C#,VB,Java,Ruby,Python……但是請不要使用內(nèi)置庫中已經(jīng)有的功能。:)
很簡單,不是嗎?只可惜截止到目前,也只有1人給出了正確答案。如果您沒有做過這道題目,那么在查看下面的分析之前,不妨拿張紙拿支筆,寫下您的答案,然后再聽老趙慢慢講來…
主體邏輯
這道題目的主題邏輯其實非常簡單。不就是把數(shù)組中的一部分反序嗎?不過從這一點上面來說,代碼的清晰程度也有較大差距。好的做法和普通的做法,從編程難度和理解上都有一定差距。例如:
1、許多朋友的做法是:既然是反轉(zhuǎn)數(shù)組的一部分元素,那么只要找到中間的位置,然后計算出和begin的偏移量,然后……怎么怎么一搞,就完成了――嗯,似乎還需要根據(jù)進(jìn)行begin和end中間的元素個數(shù)是奇數(shù)還是偶數(shù)分別處理。
2、另一些朋友的做法是:開一個新數(shù)組(長度為end - begin + 1),將begin到end之間的元素放到新數(shù)組中去,然后反序,然后再復(fù)制回來。
3、還有一個朋友認(rèn)為用棧:把begin到end之間的元素給push到棧中,再一個一個pop出來依次賦值給begin到end,這樣就反序了……唔!數(shù)據(jù)結(jié)構(gòu)學(xué)的不錯!
只可惜,這樣的做法都復(fù)雜了一些。3種做法的時間復(fù)雜度均為O(end 主站蜘蛛池模板: 国产成人精品电影在线观看 | 欧美成人精品高清在线观看 | 亚洲一区在线观看无码欧美 | 国产精品美女久久久久AV超清 | 日本三区四区免费高清不卡 | 天堂网久久 | 国产亚洲精品高清视频免费 | 最近的2019中文字幕国语完整版 | 欧美成人中文字幕在线看 | 在线免费观看毛片网站 | 成人免费公开视频 | 午夜国产精品视频 | 国产系列视频二区 | 少妇仑乱A毛片 | 九九精品在线播放 | 午夜国产精品免费观看 | 丰满五十六十老熟女HD60 | 六六影院午夜伦理 | 日本熟妇乱妇熟色A片蜜桃亚洲 | 日本人六九视频 | 久久aa毛片免费播放嗯啊 | 免费三级播放器 | 99在线观看免费视频 | 成年人视频在线免费 | 久久婷婷电影网 | 免费乱理伦片在线观看夜 | 国产成人cao在线 | 一个人的视频全免费在线观看www | 蜜柚影院在线观看免费高清中文 | 琪琪伦伦影院理论片 | 日本一本2017国产 | 日韩亚洲不卡在线视频 | 99久久久无码国产精精品 | 亚洲精品乱码久久久久久v 亚洲精品乱码电影在线观看 | 97人妻久久久精品系列A片 | 国产午夜精品理论片影院 | 麻豆精品传媒卡一卡二传媒短视频 | 亚洲精品不卡视频 | 西施打开双腿下面好紧 | 99久久久无码国产精品不卡按摩 | 麻婆豆腐传媒视频免费 |