国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

LeetCode每日一題: 旋轉(zhuǎn)數(shù)組(No.189)

FreeZinG / 906人閱讀

摘要:題目旋轉(zhuǎn)數(shù)組給定一個(gè)數(shù)組,將數(shù)組中的元素向右移動(dòng)個(gè)位置,其中是非負(fù)數(shù)。例如將到反轉(zhuǎn)將到反轉(zhuǎn)全部翻轉(zhuǎn)得到最后結(jié)果。這里要注意下還有這樣的情況即大于數(shù)組長(zhǎng)度的情況。次旋轉(zhuǎn)次旋轉(zhuǎn)轉(zhuǎn)回來(lái)了次旋轉(zhuǎn)次旋轉(zhuǎn)轉(zhuǎn)回來(lái)了次旋轉(zhuǎn)所以這里的有效等于對(duì)數(shù)組長(zhǎng)度求余。

題目: 旋轉(zhuǎn)數(shù)組
給定一個(gè)數(shù)組,將數(shù)組中的元素向右移動(dòng) k 個(gè)位置,其中 k 是非負(fù)數(shù)。
示例:
輸入: [1,2,3,4,5,6,7] 和 k = 3
輸出: [5,6,7,1,2,3,4]
解釋:
向右旋轉(zhuǎn) 1 步: [7,1,2,3,4,5,6]
向右旋轉(zhuǎn) 2 步: [6,7,1,2,3,4,5]
向右旋轉(zhuǎn) 3 步: [5,6,7,1,2,3,4]

輸入: [-1,-100,3,99] 和 k = 2
輸出: [3,99,-1,-100]
解釋: 
向右旋轉(zhuǎn) 1 步: [99,-1,-100,3]
向右旋轉(zhuǎn) 2 步: [3,99,-1,-100]
思考:
這道題有一種巧妙地利用反轉(zhuǎn)的做法。
首先將第0個(gè)到第k個(gè)元素反轉(zhuǎn),再將第k+1到末尾元素反轉(zhuǎn),最后再將全部元素反轉(zhuǎn)即可。
例如:[1,2,3,4,5,6,7]   k = 3
將0到3反轉(zhuǎn):[4,3,2,1,5,6,7]
將4到6反轉(zhuǎn):[4,3,2,1,7,6,5]
全部翻轉(zhuǎn):[5,6,7,1,2,3,4] 得到最后結(jié)果。

這里要注意下還有這樣的情況:[1,2]    k = 5    即k大于數(shù)組長(zhǎng)度的情況。
這里可以發(fā)現(xiàn)數(shù)組旋轉(zhuǎn)次數(shù)等于數(shù)組長(zhǎng)度時(shí),旋轉(zhuǎn)后的數(shù)組與初始數(shù)組相同,轉(zhuǎn)了一圈又回來(lái)了。
1次旋轉(zhuǎn):[2,1]
2次旋轉(zhuǎn): [1,2]    轉(zhuǎn)回來(lái)了
3次旋轉(zhuǎn):[2,1]
4次旋轉(zhuǎn): [1,2]    轉(zhuǎn)回來(lái)了
5次旋轉(zhuǎn):[2,1]
所以這里的有效k等于k對(duì)數(shù)組長(zhǎng)度求余。
實(shí)現(xiàn):
    class Solution {
    public void rotate(int[] nums, int k) {
        int length = nums.length;
        k %= length;
        reverse(nums, 0, length - 1);
        reverse(nums, 0, k - 1);
        reverse(nums, k, length - 1);
    }

    private void reverse(int[] nums, int start, int end) {
        while (start < end) {
            int temp = nums[start];
            nums[start++] = nums[end];
            nums[end--] = temp;
        }
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/6891.html

相關(guān)文章

  • LeetCode每日一題: 最小移動(dòng)次數(shù)使數(shù)組元素相等(No.453)

    摘要:題目最小移動(dòng)次數(shù)使數(shù)組元素相等給定一個(gè)長(zhǎng)度為的非空整數(shù)數(shù)組,找到讓數(shù)組所有元素相等的最小移動(dòng)次數(shù)。加一減一所以先求出最小的元素,在求出所有元素與最小元素的差值的和,即為最小移動(dòng)次數(shù)。題目:最小移動(dòng)次數(shù)使數(shù)組元素相等 給定一個(gè)長(zhǎng)度為 n 的非空整數(shù)數(shù)組,找到讓數(shù)組所有元素相等的最小移動(dòng)次數(shù)。每次移動(dòng)可以使 n - 1 個(gè)元素增加 1。 復(fù)制代碼 示例: 輸入...

    Muninn 評(píng)論0 收藏0
  • LeetCode 劍指 Offer 輪轉(zhuǎn)數(shù)組 轉(zhuǎn)旋轉(zhuǎn)字符串

    摘要:請(qǐng)定義一個(gè)函數(shù)實(shí)現(xiàn)字符串左旋轉(zhuǎn)操作的功能。比如,輸入字符串和數(shù)字,該函數(shù)將返回左旋轉(zhuǎn)兩位得到的結(jié)果。 目錄 第一題:左旋轉(zhuǎn)字符串 解題思路: 畫(huà)圖解析: 代碼實(shí)現(xiàn): 第二題:輪轉(zhuǎn)數(shù)組 解題思路: 畫(huà)圖解析: 代碼實(shí)現(xiàn): 第一題:左旋轉(zhuǎn)字符串 LeetCode 劍指 Offer 58: 描述:...

    Brenner 評(píng)論0 收藏0
  • LeetCode天梯>Day028 回文鏈表(雙指針+遞歸+棧+數(shù)組) | 初級(jí)算法 | Pyth

    摘要:先實(shí)現(xiàn)棧操作遍歷鏈表,把每個(gè)節(jié)點(diǎn)都進(jìn)中然后再遍歷鏈表,同時(shí)節(jié)點(diǎn)依次出棧,二者進(jìn)行比較。 ?作者簡(jiǎn)介:大家好,我是車(chē)神哥,府學(xué)路18號(hào)的車(chē)神? ?個(gè)人主頁(yè):應(yīng)無(wú)...

    miguel.jiang 評(píng)論0 收藏0
  • leetcode每日一題-559:N叉樹(shù)的最大深度

    摘要:每日一題叉樹(shù)的最大深度鏈接叉樹(shù)的最大深度題目分析簡(jiǎn)單的搜索題目。只需要從根節(jié)點(diǎn)開(kāi)始一下整個(gè)叉樹(shù)就可以得到答案了。主要是對(duì)要理解和掌握叉樹(shù)的遍歷。代碼作者作者 lee...

    caiyongji 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<