目錄標題
- 一、題目資訊
- 二、解題思路
- 三、代碼實作
- 四、其他精選題目分享

一、題目資訊
LeetCode版本

牛客網版本

下面我以牛客網為例寫代碼
題目需要先輸入一組數字代表鏈表的值,以#代表結尾,
下一行輸入K代表每組個數
問題來了,怎么翻轉?
假如有如下鏈表,且K=2.

那就從鏈表的一號下標開始,到2號下標,在這個區間內進行組內翻轉,

如果元素不夠K個時,就不進行翻轉,

二、解題思路
將鏈表分為K組,每組組內進行翻轉,每次翻轉完后,更換翻轉區間,其他細節放在代碼注釋中,
三、代碼實作
class Main{
public static void reverse(String [] res,int start,int end){
while (start<end){
String tmp=res[start];
res[start]=res[end];
res[end]=tmp;
start++;
end--;
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str;
str=scanner.nextLine();
//用空格分割鏈表每個元素
String strarr[]=str.split(" ");
int k;
k=scanner.nextInt();
//將鏈表分為K組,K組組內翻轉,如果不夠一組,就不進行翻轉,
int start=0;
while (start+k-1<strarr.length-1){
reverse(strarr,start,start+k-1);
//下一組的起始位置
start=start+k;
}
/**為什么i的上限是strarr.length-2?
* 輸入的要求是每個元素后面跟個 ->但是最后一個沒有,
* 最后一個元素就要最后輸出,
*/
for (int i = 0; i < strarr.length-2 ; i++) {
System.out.print(strarr[i]+"->");
}
/* System.out.println(strarr[ strarr.length-2]);*/
}
}

四、其他精選題目分享
一年中的第幾天 嗶哩嗶哩2020校園招聘筆試題講解
復數乘法 嗶哩嗶哩2020校園招聘面試題詳解
劍指 Offer 67. 把字串轉換成整數
怎么把i am a student逆置成student a am i?面試題逆置字串講解
三種方法任君挑選 LeetCode_136只出現一次的數字
什么?動態規劃10行求出連續子陣列的最大和 劍指offer-42講解
劍指 Offer 39. 陣列中出現次數超過一半的數字 簡單易懂14行搞定 ,人人皆可會
二叉樹的層序遍歷原理+LeetCode真題練習
LeetCode 24:兩兩交換鏈表中的節點,1662. 檢查兩個字串陣列是否相等
LeetCode 21. 合并兩個有序鏈表
劍指 Offer 58 - II. 左旋轉字串的三種解法一起看看吧!!
字串“aabcccccaaa”壓縮成“a2b1c5a3“還要回傳更小的?力扣面試題 01.06. 字串壓縮講解
字串bit666keji123“中數字的個數?
找到不重復的數字進階版 空間復雜度O(1),時間O(n)平方,不能修改陣列內容,不能對陣列進行排序
LeetCode_231. 判斷一個數是否為2 的冪,與運算一行代碼解決
驗證尼科徹斯定理,即:任何一個整數m的立方都可以寫成m個連續奇數之和
劍指 Offer II 010. 和為 k 的子陣列 前綴和+哈希表優化講解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298946.html
標籤:其他
上一篇:Linux安裝python3.8
