国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】

這篇具有很好參考價值的文章主要介紹了(排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面

難度:簡單

輸入一個整數(shù)數(shù)組,實(shí)現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有奇數(shù)在數(shù)組的前半部分,所有偶數(shù)在數(shù)組的后半部分。

示例:

輸入:nums = [1,2,3,4]
輸出:[1,3,2,4]
注:[3,1,2,4] 也是正確的答案之一。

提示

  • 0 < = n u m s . l e n g t h < = 50000 0 <= nums.length <= 50000 0<=nums.length<=50000
  • 0 < = n u m s [ i ] < = 10000 0 <= nums[i] <= 10000 0<=nums[i]<=10000

??思路:雙指針

  1. 先從 nums 左側(cè)開始遍歷,如果遇到的是奇數(shù),就表示這個元素已經(jīng)調(diào)整完成了,繼續(xù)從左往右遍歷,直到遇到一個偶數(shù)。
  2. 然后從 nums右側(cè)開始遍歷,如果遇到的是偶數(shù),就表示這個元素已經(jīng)調(diào)整完成了,繼續(xù)從右往左遍歷,直到遇到一個奇數(shù)。
  3. 交換這個偶數(shù)和奇數(shù)的位置,并且重復(fù)兩邊的遍歷,直到在中間相遇,nums 調(diào)整完成。

??代碼:(C++、Java)

C++

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        int l = 0, r = nums.size() - 1;
        while(l < r){
            //從前往后找到第一個偶數(shù)
            while(l < r && nums[l] % 2 != 0) l++;
            //從后往前找到第一個奇數(shù)
            while(l < r && nums[r] % 2 == 0) r--;
            //交換
            swap(nums[l++], nums[r--]);
        }
        return nums;
    }
};

Java

class Solution {
    public int[] exchange(int[] nums) {
        int l = 0, r = nums.length - 1;
        while(l < r){
            //從前往后找到第一個偶數(shù)
            while(l < r && nums[l] % 2 != 0) l++;
            //從后往前找到第一個奇數(shù)
            while(l < r && nums[r] % 2 == 0) r--;
            //交換
            int temp = nums[l];
            nums[l++] = nums[r];
            nums[r--] = temp;
        }
        return nums;
    }
}
?? 運(yùn)行結(jié)果:

(排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】,LeetCode,leetcode,算法,職場和發(fā)展

?? 復(fù)雜度分析:
  • 時間復(fù)雜度 O ( n ) O(n) O(n),原數(shù)組中每個元素只遍歷一次。
  • 空間復(fù)雜度 O ( 1 ) O(1) O(1),原地調(diào)整,只消耗常數(shù)空間。

題目來源:力扣。

放棄一件事很容易,每天能堅(jiān)持一件事一定很酷,一起每日一題吧!
關(guān)注我LeetCode主頁 / CSDN—力扣專欄,每日更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-661059.html

注: 如有不足,歡迎指正!

到了這里,關(guān)于(排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    難度:中等 輸入一個非負(fù)整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù),打印能拼接出的所有數(shù)字中最小的一個。 示例 1: 輸入: [10,2] 輸出: “102” 示例 2: 輸入: [3,30,34,5,9] 輸出: “3033459” 提示 : 0 nums.length = 100 說明: 輸出結(jié)果可能非常大,所以你需要返回一個字符串而不

    2024年02月10日
    瀏覽(18)
  • 劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II(位運(yùn)算 / 哈希表 / 排序)

    鏈接:劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II 難度:中等 在一個數(shù)組 nums 中除一個數(shù)字只出現(xiàn)一次之外,其他數(shù)字都出現(xiàn)了三次。請找出那個只出現(xiàn)一次的數(shù)字。 示例 1: 輸入:nums = [3,4,3,3] 輸出:4 示例 2: 輸入:nums = [9,1,7,9,7,9,7] 輸出:1 限制: 1 = nums.length = 10000 1

    2024年02月13日
    瀏覽(21)
  • 【調(diào)整奇數(shù)偶數(shù)順序】

    【調(diào)整奇數(shù)偶數(shù)順序】

    輸入一個整數(shù)數(shù)組,實(shí)現(xiàn)一個函數(shù), 來調(diào)整該數(shù)組中數(shù)字的順序使得數(shù)組中所有的奇數(shù)位于數(shù)組的前半部分, 所有偶數(shù)位于數(shù)組的后半部分。 這道題首先用到的方法是冒泡排序的思想,首先通過冒泡排序篩選出不能被2整除的數(shù)就是奇數(shù),然后再將這些數(shù)和偶數(shù)交換位置進(jìn)行

    2024年02月13日
    瀏覽(16)
  • 每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找)

    每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找)

    統(tǒng)計(jì)一個數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。 0 = nums.length = 10^5 -10^9 = nums[i] = 10^9 nums 是一個非遞減數(shù)組 -10^9 = target = 10^9 使用兩次二分查找找到target在數(shù)組中的左右邊界,然后長度就是右邊界減去左邊界再加一,最后返回長度即可。 ? 歡迎大家在評論區(qū)討論,如有不懂的代碼部分

    2024年02月14日
    瀏覽(27)
  • 【LeetCode】劍指 Offer(21)

    【LeetCode】劍指 Offer(21)

    目錄 題目:劍指 Offer 39. 數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!??! 題目:劍指 Offer 40. 最小的k個數(shù) - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!??! 寫在最后: 這道題,我的思路是直接排序, 然后返回中間

    2023年04月10日
    瀏覽(29)
  • 劍指 Offer. 翻轉(zhuǎn)單詞順序

    輸入一個英文句子,翻轉(zhuǎn)句子中單詞的順序,但單詞內(nèi)字符的順序不變。為簡單起見,標(biāo)點(diǎn)符號和普通字母一樣處理。例如輸入字符串\\\"I am a student. \\\",則輸出\\\"student. a am I\\\"。 示例 1: 示例 2: 示例 3: 代碼如下:

    2024年02月15日
    瀏覽(18)
  • 劍指offer刷題筆記--Num21-30

    劍指offer刷題筆記--Num21-30

    目錄 1--調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面(21) 2--鏈表中倒數(shù)第 k 個節(jié)點(diǎn)(22) 3--反轉(zhuǎn)鏈表(24) 4--合并兩個排序的鏈表(25) 5--樹的子結(jié)構(gòu)(26) 6--二叉樹的鏡像(27) 7--對稱的二叉樹(28) 8--順時針打印矩陣(29) 9--包含min函數(shù)的棧(30) 主要思路: ????????雙指針

    2024年02月12日
    瀏覽(24)
  • 劍指 Offer 58 - I. 翻轉(zhuǎn)單詞順序

    劍指 Offer 58 - I. 翻轉(zhuǎn)單詞順序 不用內(nèi)置方法 去除首尾空格和中間多余空格 翻轉(zhuǎn)所有字符 翻轉(zhuǎn)每個單詞 用自帶的 trim() 和 substring() ,要自己實(shí)現(xiàn)這兩個方法也很簡單。

    2024年02月11日
    瀏覽(20)
  • 《劍指offer》(3)排序算法篇

    《劍指offer》(3)排序算法篇

    class Solution: ? ? def duplicate(self , numbers: List[int]) - int: ? ? ? ? if len(numbers) = 1: ? ? ? ? ? ? return -1 ? ? ? ? import collections ? ? ? ? num_dict = collections.Counter(numbers) ? ? ? ? res = [key for (key,value) in num_dict.items() if value 1] ? ? ? ? return res[0] class Solution: ? ? def sort(self,num): #快排

    2024年02月13日
    瀏覽(22)
  • 劍指 Offer 66. 構(gòu)建乘積數(shù)組

    給定一個數(shù)組 A[0,1,…,n-1] ,請構(gòu)建一個數(shù)組 B[0,1,…,n-1] ,其中 B[i] 的值是數(shù)組 A 中除了下標(biāo) i 以外的元素的積, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1] 。不能使用除法。 示例: 提示: 所有元素乘積之和不會溢出 32 位整數(shù) a.length = 100000 解答

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包