比如0,1,2,3,4這五個數字組成壹個圓。如果每次從數字0開始刪除第三個數字,那麽刪除的前四個數字依次是2、0、4和1,所以最後剩下的數字是3。
示例1:
輸入:n = 5,m = 3。
輸出:3
示例2:
輸入:n = 10,m = 17。
輸出:2
請實現壹個函數,輸入壹個整數,輸出二進制表示的數字1。比如把9表示成二進制是1001,兩位是1。因此,如果輸入9,函數輸出2。
示例1:
輸入:000000000000000000000000000001011。
輸出:3
說明:在輸入的二進制字符串00000000000000000000000000101中,* *有三個數字“1”。
數字被序列化為壹個字符序列,格式為0123456789112131415…在這個序列中,第5位(從下標0開始計數)是5,第13位是1,第19位是4,依此類推。
請寫壹個函數,求任意第n位對應的數。
示例1:
輸入:n = 3
輸出:3
示例2:
輸入:n = 11
輸出:0
請註意,這必須是長類型。
輸入壹個非負整數數組,將數組中的所有數字拼接成壹個數字,打印出所有可拼接數字中最小的壹個。
示例1:
輸入:
輸出:“102”
示例2:
輸入:
輸出:“3033459”
老師想給孩子們分發糖果。有n個孩子站成壹條直線,老師會根據他們的表現提前給他們打分。
妳需要按照以下要求,幫助老師給這些孩子分發糖果:
每個孩子至少分配到1塊糖。
在鄰近的孩子中,得分高的孩子必須得到更多的糖果。
那麽老師至少需要準備多少糖果呢?
示例1:
輸入:
輸出:5
說明:妳可以分別給這三個孩子分發2,1和2個糖果。
示例2:
輸入:
輸出:4
說明:可以分別給這三個孩子分發1,2,1的糖果。
第三個孩子只拿到了1的糖果,已經滿足了以上兩個條件。
壹條環路上有n個加油站,其中第I個加油站有汽油氣。
成本=
輸出:3
貪婪的想法是,只要和大於0,就可以繞過去。
起始位置的貪婪思想是,如果sum從開始就小於0,那麽壹定不是從上壹個位置開始,而是從當前的下壹個位置開始,sum = 0被清零。
給定壹個非負整數數組,您最初位於數組的第壹個位置。
數組中的每個元素代表在該位置可以跳轉的最大長度。
您的目標是以最少的跳數到達數組的最後壹個位置。
示例:
輸入:
輸出:2
說明:跳到最後壹個位置的最小次數是2。
從下標0跳到下標1,跳到1,再跳3步到達數組的最後壹個位置。
給定壹個非負整數數組,您最初位於數組的第壹個位置。
數組中的每個元素代表在該位置可以跳轉的最大長度。
判斷自己是否能到達最後的位置。
示例1:
輸入:
輸出:真
說明:我們可以先跳1,從位置0跳到位置1,再從位置1跳到最後壹個位置3步。
包含字母A-Z的消息以下列方式編碼:
壹個'-& gt;1
b '-& gt;2
...
z '-& gt;26
給定壹個只包含數字的非空字符串,請計算解碼方法的總數。
示例1:
輸入:“12”
輸出:2
說明:可以解碼為“AB”(1 2)或“L”(12)。
這裏壹定要註意第壹個數是0的情況。s.charAt(0) == '0 '。如果第壹個數字是0,我們必須直接返回0。
給定壹個數組,它的第I個元素是給定股票在第I天的價格。
如果最多只允許妳完成壹次交易(即買賣壹只股票壹次),設計壹個算法,計算出妳能獲得的最大利潤。
註意:買股票之前不能賣股票。
示例1:
輸入:
輸出:5
解釋:第二天買入(股價= 1),第五天賣出(股價= 6)。最大利潤= 6-1 = 5。
註意利潤不能是7-1 = 6,因為賣價需要大於買價;同時,不能先賣股票再買。
給定三個字符串s1、s2、s3和s3,驗證S3是否由s1和s2組成。
示例1:
輸入:s1 = "aabcc ",S2 = "dbbca ",S3 = " aadbbcbcac "。
輸出:真
給妳壹個字符串S和壹個字符規則P,請實現壹個支持'.'的正則表達式匹配和“*”。
。匹配任何單個字符。
* '匹配零個或多個前面的元素。
所謂匹配就是覆蓋整個字符串s,而不是字符串的壹部分。
描述:
s可以是空的,只包含從a到z的小寫字母。
p可以是空的,只包含從A到Z的小寫字母以及字符。和*。
示例1:
輸入:
s = "aa "
p = "a "
輸出:假
解釋:“a”無法匹配“aa”的整個字符串。
給定壹個整數矩陣,求最長增量路徑的長度。
對於每個單元格,您可以上下左右移動。不能對角移動,也不能越界(也就是不允許繞回)。
示例1:
輸入:nums =
,
,
輸出:(當然正確)
給定壹些標有寬度和高度的信封,寬度和高度顯示為整數對(w,h)。當另壹個信封的寬度和高度大於這個信封時,這個信封就可以放進另壹個信封裏,就像俄羅斯娃娃壹樣。
請計算壹下可以組成壹組“俄羅斯娃娃”的信封的最大數量(即壹個信封可以放在另壹個信封裏)。
描述:
不允許旋轉信封。
示例:
輸入:信封=,,,]
輸出:3
說明:信封的最大數量是3,組合是:= & gt= & gt。
標準動態編程
壹只青蛙想要過河。假設將河流平均分成x個單元格,每個單元格中可能有也可能沒有石頭。青蛙可以在巖石上跳,但是它們不能跳進水裏。
給定壹個石頭的位置列表(以單元格編號升序表示),請決定青蛙能否成功過河(即能否跳到最後壹步的最後壹塊石頭)。壹開始青蛙已經默認站在第壹塊石頭上,可以假設第壹步只能跳壹個單位(也就是只能從1號單元格跳到2號單元格)。
如果青蛙上壹步跳了k個單位,那麽它的下壹跳距離只能選k-1,k或k+1個單位。還請註意,青蛙只能向前跳(向終點方向)。
請註意:
結石數≥ 2且< 1100;
每顆寶石的位置序號是壹個非負整數,它的
第壹塊石頭的位置總是0。
示例1:
輸出:3
思路是忽略第壹個得到壹個結果,忽略最後壹個得到壹個結果,只要每次有壹個結果。
//可以用rangeCopy在函數中求解。
給定壹個三角形,求從上到下的最小路徑和。每個步驟只能移動到下壹行的相鄰節點。
這裏的相鄰節點是指下標等於或等於上節點下標+1的兩個節點。
例如,給定壹個三角形:
,
,
]
從上到下的最小路徑和為11(即2+3+5+1 = 11)。
給定壹個包含非負整數的m×n網格,請找出壹條從左上角到右下角的路徑,使路徑上的數字之和最小。
註意:壹次只能向下或向右移動壹步。
示例:
輸入:
,
,
]
輸出:2
壹個機器人位於壹個m x n網格的左上角(起點在下圖中標記為“start”)。
機器人壹次只能向下或向右移動壹步。機器人試圖到達網格的右下角(下圖中標有“完成”)。
有多少種不同的路徑?
假設妳正在爬樓梯。要走n步才能到屋頂。
壹次可以爬1或者2級臺階。妳有多少種不同的方法可以爬到樓頂?
註意:給定的n是正整數。
示例1:
輸入:2
輸出:2