日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LintCode 1859. 最小振幅(排序)

發(fā)布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LintCode 1859. 最小振幅(排序) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 題目

給定一個由 N 個整數(shù)組成的數(shù)組 A,一次移動,我們可以選擇此數(shù)組中的任何元素并將其替換為任何值。
數(shù)組的振幅是數(shù)組A中的最大值和最小值之間的差。
返回通過執(zhí)行最多三次替換之后數(shù)組A的最小振幅

示例 1 輸入: A = [-9, 8, -1] 輸出: 0 解釋:可以將 -98 替換成-1,這樣所有元素都等于 -1,所以振幅是0示例 2: 輸入: A = [14, 10, 5, 1, 0] 輸出: 1 解釋:為了實現(xiàn)振幅是1,我們可以將 14105 替換成 1 或者 0示例 3: 輸入: A = [11, 0, -6, -1, -3, 5] 輸出: 3 解釋:可以將11-65都換成-2注意事項 N是一個整數(shù)而且范圍是: [2, 10000] A數(shù)組中的每一個元素都是整數(shù)而且范圍是: [-50, 50]

2. 解題

  • 排序后,舍去兩端的3個點,共有4種情況(一端為0,1,2,3 個)
class Solution { public:int MinimumAmplitude(vector<int> &A) {if(A.size() <= 4)return 0;sort(A.begin(),A.end());int j = A.size()-1;return min(A[j]-A[3],min(A[j-1]-A[2],min(A[j-2]-A[1], A[j-3]-A[0])));} };

or

class Solution { public:int MinimumAmplitude(vector<int> &A) {if(A.size() <= 4)return 0;sort(A.begin(),A.end());int Min = INT_MAX;int i = 3, j = A.size()-1, count = 4;while(count--){Min = min(Min, A[j]-A[i]);j--,i--;}return Min;} };

總結(jié)

以上是生活随笔為你收集整理的LintCode 1859. 最小振幅(排序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。