leetcode1033. 移動石子直到連續

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

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

當你無法進行任何移動時,即,這些石子的位置連續時,游戲結束。

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

?

示例 1:

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

輸入:a = 4, b = 3, c = 2
輸出:[0, 0]
解釋:我們無法進行任何移動。
?

提示:

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

思路:見代碼

class Solution {public int[] numMovesStones(int a, int b, int c) {int[] res = new int[2];int[] array = {a, b, c};Arrays.sort(array);//兩數相差大于1,就直接挪到中間數旁邊,需要一次;兩數挨著,就不動res[0] = (array[1] - array[0] == 1 ? 0 : 1) + (array[2] - array[1] == 1 ? 0 : 1);//兩數相差等于2,就直接把另一個數挪中間res[0] = (array[1] - array[0] == 2 || array[2] - array[1] == 2) ? 1 : res[0];//最大值就是兩邊距離res[1] = array[2] - array[0] - 2;return res;}
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444678.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytorch學習 訓練一個分類器(五)

訓練一個分類器 就是這個, 你已經看到了如何定義神經網絡, 計算損失并更新網絡的權重. 現在你可能會想, 數據呢? 一般來說, 當你不得不處理圖像, 文本, 音頻或者視頻數據時, 你可以使用標準的 Python 包將數據加載到一個 numpy 數組中. 然后你可以將這個數組轉換成一個 to…

Git(6)-Git配置文件、底層操作命令

Git基本命令1. 常用(迷糊)命令-冷知識2. git 配置2.1 設置 配置文件2.2 查看 配置文件--git config -l2.3 移除 配置文件設置--unset2.3 命令別名 --alias3.git 對象 &#xff08;git底層操作命令&#xff09;3.1 初始化一個版本庫3.2 新建一個簡單的blob 對象3.3 基于散列值查…

【軟考中級】網絡工程師:8.網絡安全

本章考察內容比較廣泛&#xff0c;考題對知識點都會有所涉及。 8.1 網絡安全的基本概念 8.1.1 網絡安全威脅的類型 竊聽 這種情況發生在廣播式網絡系統中&#xff0c;每個節點都可以讀取數據&#xff0c;實現搭線竊聽、安裝通信監視器和讀取網上的信息等。 假冒 當一個實體…

leetcode9 回文數

判斷一個整數是否是回文數。回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個…

caffe各層參數詳解

在prototxt文件中,層都是用layer{}的結構表示,而里面包含的層的參數可以在caffe.proto文件中找到,比如說Data類型的結構由message DataParameter所定義,Convolution類型的結構由message ConvolutionParameter所定義。 具體說明下: name表示該層的名稱type表示該層的類型,…

caffe網絡結構圖繪制

繪制網絡圖通常有兩種方法&#xff1a; 一種是利用python自帶的draw_net.py&#xff0c;首先安裝兩個庫&#xff1a; sudo apt-get install graphviz sudo pip install pydot 接下來就可以用python自帶的draw_net.py文件來繪制網絡圖了。 draw_net.py執行時帶三個參數&…

Git(7)-Git commit

Git提交1.識別不同的提交1.1絕對提交名-ID1.2 引用和符號引用--HEAD2.查看提交的歷史記錄-git log3.提交圖-gitk4.提交的范圍4.1 X..Y4.1 X...Y5.查找bad 提交--git bisect6.查看代碼修改者-git blame命令概覽git commit -a # 直接提交修改和刪除文件有效加了-a&#xff0c;在 …

leetcode111. 二叉樹的最小深度

給定一個二叉樹&#xff0c;找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 思路&#xff1a…

Caffe將圖像數據轉換成leveldb/lmdb

Caffe中convert_imageset projrct將圖像數據轉換成Caffe能讀取的數據格式leveldb/lmdb -gray=true //whether read gray image -shuffle=true //whether mix order -resize_height=28 -resize_width=28 -backend=lmdb …

leetcode155. 最小棧

設計一個支持 push&#xff0c;pop&#xff0c;top 操作&#xff0c;并能在常數時間內檢索到最小元素的棧。 push(x) -- 將元素 x 推入棧中。 pop() -- 刪除棧頂的元素。 top() -- 獲取棧頂元素。 getMin() -- 檢索棧中的最小元素。 示例: MinStack minStack new MinStack()…

理解Caffe的網絡模型

目錄 1. 初見LeNet原始模型2. Caffe LeNet的網絡結構3. 逐層理解Caffe LeNet 3.1 Data Layer3.2 Conv1 Layer3.3 Pool1 Layer3.4 Conv2 Layer3.5 Pool2 Layer3.6 Ip1 Layer3.7 Relu1 Layer3.8 Ip2 Layer3.9 Loss Layer 1. 初見LeNet原始模型 Fig.1. Architecture of original …

Git(8)-分支

分支1. 分支名2. 創建分支-git branch3. 查看分支-git show-branch4. 檢出分支4.1 有未提交的修改時進行檢出4.2 合并變更到不同的分支git checkout -m5. 分離HEAD 分支6.刪除分支分支操作命令概覽 git branch # 列出版本庫中的分支 git branch -r # 列出遠程跟蹤分支…

caffe開始訓練自己的模型(轉載并驗證過)

學習caffe中踩了不少坑&#xff0c;這里我參考了此博主的文章&#xff0c;并體會到了如何訓練自己的模型&#xff1a;http://www.cnblogs.com/denny402/p/5083300.html 學習caffe的目的&#xff0c;不是簡單的做幾個練習&#xff0c;最終還是要用到自己的實際項目或科研中。因…

leetcode169. 多數元素

給定一個大小為 n 的數組&#xff0c;找到其中的多數元素。多數元素是指在數組中出現次數大于 ? n/2 ? 的元素。 你可以假設數組是非空的&#xff0c;并且給定的數組總是存在多數元素。 示例 1: 輸入: [3,2,3] 輸出: 3 示例 2: 輸入: [2,2,1,1,1,2,2] 輸出: 2 思路&…

Git(9)-diff

分支1. diff in Linux/Unix2. diff in Git3. git diff 兩點語法Linux/Unix 系統中存在diff 命令&#xff0c;可以用來顯示兩個文本/工作路徑的差異。Git diff 在此基礎上進行的擴展。 1. diff in Linux/Unix Linux 系統中的diff 命令&#xff1a;提供了一個文件如何轉化為另一…

圖像拼接(一):柱面投影+模板匹配+漸入漸出融合

這種拼接方法的假設前提是&#xff1a;待拼接的兩幅圖像之間的變換模型是平移模型&#xff0c;即兩幅圖像同名點位置之間只相差兩個未知量&#xff1a;ΔxΔx 和ΔyΔy&#xff0c;自由度為2&#xff0c;模型收得最緊。所以只有所有圖像都是用同一水平線或者同一已知傾斜角的攝…

圖像拼接(二):OpenCV同時打開兩個攝像頭捕獲視頻

使用OpenCV實現同時打開兩個USB攝像頭&#xff0c;并實時顯示視頻。如果未檢測有兩個攝像頭&#xff0c;程序會結束并發出“攝像頭未安裝好”的警告。這里推薦一個小巧的攝像頭視頻捕捉軟件&#xff1a;amcap&#xff0c;使用它可以方便的檢查每個攝像頭是否能正常工作。 捕獲…

Git(10)-merge

Merge1. 無沖突合并2. 有沖突合并-手動解決3. git diff in merge4. 廢棄合并5. 合并策略merge相關的操作的命令 git checkout master git merge alternate # 解決沖突 ..... git add file_1 git commit -m "Add slternate line 5, 6" git reset --hard HEAD # b…

elasticsearch的Linux下安裝報錯問題解決

1.啟動報錯如下: vim /etc/security/limits.conf 然后修改如下 * soft nofile 65536 * hard nofile 65536sudo vi /etc/pam.d/common-session 添加 session required pam_limits.so sudo vi /etc/pam.d/common-session-noninteractive 添加 session required pam_limits.so…

leetcode120. 三角形最小路徑和

給定一個三角形&#xff0c;找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如&#xff0c;給定三角形&#xff1a; [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11&#xff08;即&#xff0c;2 3 5 1 11&#xff0…