摘要:請定義一個函數(shù)實現(xiàn)字符串左旋轉(zhuǎn)操作的功能。比如,輸入字符串和數(shù)字,該函數(shù)將返回左旋轉(zhuǎn)兩位得到的結(jié)果。
目錄
LeetCode 劍指 Offer 58:
描述:
字符串的左旋轉(zhuǎn)操作是把字符串前面的若干個字符轉(zhuǎn)移到字符串的尾部。請定義一個函數(shù)實現(xiàn)字符串左旋轉(zhuǎn)操作的功能。比如,輸入字符串"abcdefg"和數(shù)字2,該函數(shù)將返回左旋轉(zhuǎn)兩位得到的結(jié)果"cdefgab"。
1.使用額外的數(shù)組,數(shù)組長度等于字符串的長度.
2.遍歷,讓原字符串下標(biāo)為i位置的字符,放到數(shù)組中下標(biāo)為 (i+k)%s.length()的位置
3.最后引用一個新字符串,讓數(shù)組的內(nèi)容變成字符串.
class Solution { public String reverseLeftWords(String s, int n) { //讓l表示字符串長度 int l = s.length(); //讓ret表示ch數(shù)組的下標(biāo) int ret = 0; //定義一個數(shù)組,數(shù)組的長度和字符串長度相等 char[] ch = new char[l]; //遍歷 for(int i=0;i
LeetCode 189:
描述:
給你一個數(shù)組,將數(shù)組中的元素向右輪轉(zhuǎn)?k
?個位置,其中?k
?是非負數(shù)。
1.定義一個額外數(shù)組arr;
2.遍歷,讓原數(shù)組下標(biāo)為i位置的元素,放到數(shù)組中下標(biāo)為 (i+k)%s.length()的位置
3.將arr數(shù)組拷貝給原數(shù)組(System.arraycopy())
class Solution { public void rotate(int[] nums, int k) { //定義一個額外數(shù)組 新數(shù)組長度等于原數(shù)組長度 int[] arr = new int[nums.length]; int n = nums.length; //遍歷數(shù)組 for (int i = 0; i < n; ++i) { //讓數(shù)組下標(biāo)i位置放在新數(shù)組(i+l)%n的位置 arr[(i + k) % n] = nums[i]; } //數(shù)組拷貝 System.arraycopy(arr, 0, nums, 0, nums.length); }}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124777.html
摘要:有效三角形的個數(shù)雙指針最暴力的方法應(yīng)該是三重循環(huán)枚舉三個數(shù)字??偨Y(jié)本題和三數(shù)之和很像,都是三個數(shù)加和為某一個值。所以我們可以使用歸并排序來解決這個問題。注意因為歸并排序需要遞歸,所以空間復(fù)雜度為 ...
摘要:題目把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。輸入一個非減排序的數(shù)組的一個旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組為的一個旋轉(zhuǎn),該數(shù)組的最小值為。出現(xiàn)這種情況的類似,此時最小數(shù)字一定在的右邊。 題目 把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。 輸入一個非減排序的數(shù)組的一個旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。 例如數(shù)組{3,4,5,1,2}為{1,...
閱讀 2384·2021-11-25 09:43
閱讀 2889·2021-11-24 09:39
閱讀 2972·2019-08-30 11:10
閱讀 1161·2019-08-29 16:34
閱讀 624·2019-08-29 13:25
閱讀 3381·2019-08-29 11:21
閱讀 2886·2019-08-26 11:39
閱讀 2421·2019-08-26 11:34