LeetCode-1033. 移動石子直到連續(xù)

題目描述 移動石子直到連續(xù)

三枚石子放置在數(shù)軸上,位置分別為 a,b,c。

每一回合,我們假設(shè)這三枚石子當(dāng)前分別位于位置 x, y, z 且 x < y < z。從位置 x 或者是位置 z 拿起一枚石子,并將該石子移動到某一整數(shù)位置 k 處,其中 x < k < z 且 k != y。

當(dāng)你無法進行任何移動時,即,這些石子的位置連續(xù)時,游戲結(jié)束。

要使游戲結(jié)束,你可以執(zhí)行的最小和最大移動次數(shù)分別是多少? 以長度為 2 的數(shù)組形式返回答案:answer = [minimum_moves, maximum_moves]

示例

輸入:a = 1, b = 2, c = 5
輸出:[1, 2]
解釋:將石子從 5 移動到 4 再移動到 3,或者我們可以直接將石子移動到 3。

1 <= a <= 100
1 <= b <= 100
1 <= c <= 100
a != b, b != c, c != a

解題思路

  • 要注意的是a,b,c一開始沒有排序,所以應(yīng)該先對abc排序
  • 然后就很簡單了啊,判斷就好了
  • 注意的就是如果ab或者cb的差等于2,那么最少次數(shù)為1

代碼

class Solution {
public:
    vector<int> numMovesStones(int a, int b, int c) {
        if(a>b) swap(a, b);
        if(b>c) swap(b, c);
        if(a>b) swap(a, b);
        vector<int> res;
        int min_num=0;
        int max_num=0;
        if(b-a>1){
            min_num += 1;
            max_num += b - a - 1;
        }
        if(c-b>1){
            min_num += 1;
            max_num += c - b - 1;
        }
        if(b-a==2||c-b==2) min_num = 1;
        res.push_back(min_num);
        res.push_back(max_num);
        return res;
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,993評論 0 2
  • 專業(yè)考題類型管理運行工作負責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,461評論 0 13
  • 更多精彩內(nèi)容,請關(guān)注【力扣簡單題】。 題目 難度:★★☆☆☆類型:數(shù)組,益智 三枚石子放置在數(shù)軸上,位置分別為 a...
    玖月晴閱讀 472評論 0 0
  • 我的村子后面是一脈山,坡陡地貧多沙礫。 然而村里人多地少,能長植物的地方村民都恨不得開荒成耕地。那一脈鳥不拉屎的山...
    云問雨閱讀 352評論 0 6
  • 不知道大家平時工作的狀態(tài)是怎么樣,我發(fā)現(xiàn)最近自己老喜歡把工作留到最后快沒時間的時候才開始做,前面明明有大把的時間完...
    o左手寫愛o閱讀 633評論 0 4

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