亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?C++?算法題解拓展leetcode670最大交換示例

 更新時間:2022年09月14日 08:59:06   作者:AnjaVon  
這篇文章主要介紹了Java?C++算法題解拓展leetcode670最大交換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

題目要求

思路:模擬

Java

class Solution {
    public int maximumSwap(int num) {
        List<Integer> list = new ArrayList<>();
        while (num != 0) {
            list.add(num % 10);
            num /= 10;
        }
        int n = list.size(), res = 0;
        int[] idx = new int[n];
        for (int i = 0, j = 0; i < n; i++) {
            if (list.get(i) > list.get(j)) // 嚴格大于
                j = i;
            idx[i] = j;
        }
        for (int i = n - 1; i >= 0; i--) { // 高位開始
            if (list.get(idx[i]) != list.get(i)) {
                int tmp = list.get(idx[i]);
                list.set(idx[i], list.get(i));
                list.set(i, tmp);
                break;
            }
        }
        for (int i = n - 1; i >= 0; i--)
            res = res * 10 + list.get(i);
        return res;
    }
}
  • 時間復雜度:O(log ?num)
  • 空間復雜度:O(log ?num)

C++

class Solution {
public:
    int maximumSwap(int num) {
        vector<int> list;
        while (num != 0) {
            list.emplace_back(num % 10);
            num /= 10;
        }
        int n = list.size(), res = 0;
        int idx[n];
        for (int i = 0, j = 0; i < n; i++) {
            if (list[i] > list[j]) // 嚴格大于
                j = i;
            idx[i] = j;
        }
        for (int i = n - 1; i >= 0; i--) { // 高位開始
            if (list[idx[i]] != list[i]) {
                int tmp = list[idx[i]];
                list[idx[i]] =list[i];
                list[i] = tmp;
                break;
            }
        }
        for (int i = n - 1; i>= 0; i--)
            res = res * 10 + list[i];
        return res;
    }
};
  • 時間復雜度:O(log? num)
  • 空間復雜度:O(log ?num)

Rust

  • 這個部分代碼似乎有一點小問題【不用似乎就是有】……有就先有著吧……搞了半個小時也沒解決【擺爛】
impl Solution {
    pub fn maximum_swap(num: i32) -> i32 {
        let mut list = vec![];
        let mut res = num;
        while (res != 0) {
            list.push(res % 10);
            res /= 10;
        }
        let n = list.len();
        let mut idx = vec![0; n];
        let mut j = 0;
        for i in 0..n {
            if list[i] > list[j] {
                j = i;
            }
            idx[i] = j;
        }
        for k in n-1..0 {
            if list[idx[k]] != list[k] {
                list.swap(idx[k], k);
                break;
            }
        }
        for l in n-1..0 {
            res = res * 10 + list[l];
        }
        res
    }
}
  • 時間復雜度:O(log ?num)
  • 空間復雜度:O(log? num)

以上就是Java C++算法題解拓展leetcode670最大交換示例的詳細內容,更多關于Java C++算法最大交換的資料請關注腳本之家其它相關文章!

相關文章

  • C++類的定義和對象的創(chuàng)建詳解

    C++類的定義和對象的創(chuàng)建詳解

    本篇文章重點講解了兩種創(chuàng)建對象的方式:一種是在棧上創(chuàng)建,形式和定義普通變量類似;另外一種是在堆上使用 new 關鍵字創(chuàng)建,必須要用一個指針指向它,下面和小編一起來學習下面為文章的內容
    2021-09-09
  • C++繼承的賦值轉換與菱形虛擬繼承深入詳解

    C++繼承的賦值轉換與菱形虛擬繼承深入詳解

    今天我要給大家介紹C++中更深入的內容了,C++繼承的賦值轉換與菱形虛擬繼承。C++這門語言為了使代碼不冗余,做了些什么操作呢?C++的繼承就很好地實現(xiàn)了類層次的代碼復用,今天我就要來和大家好好聊一聊它了
    2022-08-08
  • 一文帶你搞懂C語言動態(tài)內存管理

    一文帶你搞懂C語言動態(tài)內存管理

    動態(tài)內存是指在堆上分配的內存,而靜態(tài)內存是指在棧上分配的內存。本文將通過幾個示例帶大家深入了解一下C語言的動態(tài)內存管理,需要的可以參考一下
    2022-11-11
  • C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法

    C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法

    這篇文章主要介紹了C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法,涉及C++數(shù)組的遍歷、判斷、運算等相關操作技巧,需要的朋友可以參考下
    2017-03-03
  • 一元多項式加法運算

    一元多項式加法運算

    今天小編就為大家分享一篇關于一元多項式加法運算,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • C語言歸排與計排深度理解

    C語言歸排與計排深度理解

    這篇文章主要為大家詳細的介紹了C語言中計數(shù)排序和歸并排序,歸并排序是創(chuàng)建在歸并操作上的一種有效的排序算法,計數(shù)排序不用比較兩個數(shù)的大小,感興趣的朋友可以參考閱讀
    2023-04-04
  • C++實現(xiàn)翻轉單詞順序

    C++實現(xiàn)翻轉單詞順序

    這篇文章給大家匯總介紹了C++實現(xiàn)翻轉單詞順序的三種方法,都非常的簡單,需要的朋友可以參考下
    2016-07-07
  • c++雙向鏈表操作示例(創(chuàng)建雙向鏈、雙向鏈表中查找數(shù)據(jù)、插入數(shù)據(jù)等)

    c++雙向鏈表操作示例(創(chuàng)建雙向鏈、雙向鏈表中查找數(shù)據(jù)、插入數(shù)據(jù)等)

    這篇文章主要介紹了c++雙向鏈表操作示例,包括創(chuàng)建雙向鏈、刪除雙向鏈表、雙向鏈表中查找數(shù)據(jù)、插入數(shù)據(jù)等,需要的朋友可以參考下
    2014-05-05
  • C語言初階之數(shù)組詳細介紹

    C語言初階之數(shù)組詳細介紹

    大家好,本篇文章主要講的是C語言初階之數(shù)組詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語言職工信息管理系統(tǒng)源碼

    C語言職工信息管理系統(tǒng)源碼

    這篇文章主要為大家詳細介紹了C語言職工信息管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論