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

代碼隨想錄二刷day01

這篇具有很好參考價值的文章主要介紹了代碼隨想錄二刷day01。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

使用左閉右閉區(qū)間的二分查找時, 最后low一定是被查找元素的插入位置,若查找的數(shù)帶小數(shù),low-1, 便是最終結(jié)果

一、704. 二分查找

1、左閉右閉

class Solution {
    public int search(int[] nums, int target) {
        int low = 0, high = nums.length-1, mid = 0;
        while(low <= high){
            mid = (low + high)/2;
            if(nums[mid] == target){
                return mid;
            }else if(nums[mid] < target){
                low = mid + 1;
            }else{
                high = mid - 1;
            }
        }
        return -1;
    }
}

2、左閉右開文章來源地址http://www.zghlxwxcb.cn/news/detail-657723.html

class Solution {
    public int search(int[] nums, int target) {
        int low = 0, high = nums.length, mid = 0;
        while(low < high){
            mid = (low + high)/2;
            if(nums[mid] == target){
                return mid;
            }else if(nums[mid] < target){
                low = mid + 1;
            }else{
                high = mid;
            }
        }
        return -1;
    }
}

二、35. 搜索插入位置

class Solution {
    public int searchInsert(int[] nums, int target) {
        int low = 0, high = nums.length, mid;
        while(low < high){
            mid = (low + high)/2;
            if(nums[mid] == target){
                return mid;
            }else if(nums[mid] < target){
                low = mid + 1;
            }else{
                high = mid;
            }
        }
        return low;
    }
}

三、34. 在排序數(shù)組中查找元素的第一個和最后一個位置

class Solution {
    public int[] searchRange(int[] nums, int target) {
        int low = 0, high = nums.length, mid; int[] res = {-1, -1};
        while(low < high){
            mid = (low + high)/2;
            if(nums[mid] == target){
                res[0] = res[1] = mid;
                while(res[0]-1 >= 0 && nums[res[0] - 1] == target){
                    res[0] -= 1;
                }
                while(res[1] + 1 < nums.length && nums[res[1] + 1] == target){
                    res[1] += 1;
                }
                return res;
            }else if(nums[mid] < target){
                low = mid + 1;
            }else{
                high = mid;
            }
        }
        return res;
    }
}

四、69. x 的平方根

class Solution {
    public int mySqrt(int x) {
        int low = 0, high = x, mid;
        if(x == 0 || x == 1){
            return x;
        }
        while(low <= high){
            mid = (low + high)/2;
            if(x / mid == mid){
                return mid;
            }else if(x / mid > mid){
                low = mid +1;
            }else{
                high = mid -1;
            }
        }
        return low - 1;
    }
}

五、367. 有效的完全平方數(shù)

lass Solution {
    public boolean isPerfectSquare(int num) {
        int x = 1;
        while(num > 0){
            num -= x;
            x += 2;
        }
        return num == 0;
    }
}

六、27. 移除元素

class Solution {
    public int removeElement(int[] nums, int val) {
        int i = 0, j = 0;
        for(;i < nums.length; ){
            if(nums[i] != val){
                nums[j] = nums[i];
                i ++; j ++;
            }else{
                i ++;
            }
        }
        return j;
    }
}

七、26. 刪除有序數(shù)組中的重復(fù)項(xiàng)

class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums.length == 1){
            return 1;
        }
        int i = 1, j = 0;
        for(; i < nums.length; ){
            if(nums[i] != nums[j]){
                nums[++j] = nums[i++];
            }else{
                i ++;
            }
        }
        return j + 1;
    }
}

八、283. 移動零

class Solution {
    public void moveZeroes(int[] nums) {
        int i = 0, j = 0, len = nums.length;
        if(len == 1)return;
        while(i < len){
            if(nums[i] != 0){
                nums[j] = nums[i];
                if(i == j){
                    i ++;
                }else{
                    nums[i++] = 0;
                }
                j ++;
            }else{
                i ++;
            }
        }
    }
}

九、844. 比較含退格的字符串

class Solution {
    public boolean backspaceCompare(String s, String t) {
        Deque<Character> deq1 = new ArrayDeque<>();
        Deque<Character> deq2 = new ArrayDeque<>();
        char[] ch1 = s.toCharArray();
        char[] ch2 = t.toCharArray();
        for(int i = 0; i < ch1.length; i ++){
            if(ch1[i] != '#'){
                deq1.offerFirst(ch1[i]);
            }else if(!deq1.isEmpty()){
                deq1.pollFirst();
            }
        }
        for(int j = 0; j < ch2.length; j ++){
            if(ch2[j] != '#'){
                deq2.offerFirst(ch2[j]);
            }else if(!deq2.isEmpty()){
                deq2.pollFirst();
            }
        }
        while(!deq1.isEmpty() && !deq2.isEmpty()){
            char c1 = deq1.pollFirst();
            char c2 = deq2.pollFirst();
            if(c1 != c2){
                return false;
            }
        }
        return deq1.isEmpty() && deq2.isEmpty();
    }
}

十、977. 有序數(shù)組的平方

class Solution {
    public int[] sortedSquares(int[] nums) {
        Deque<Integer> deq1 = new LinkedList<>();
        Deque<Integer> deq2 = new LinkedList<>();
        for(int i = 0; i < nums.length; i ++){
            if(nums[i] <= 0){
                deq1.offerLast(nums[i] * nums[i]);
            }else{
                deq2.offerLast(nums[i] * nums[i]);
            }
        }
        int k = 0;
        while(!deq1.isEmpty() && !deq2.isEmpty()){
            if(deq1.peekLast() <= deq2.peekFirst()){
                nums[k ++] = deq1.pollLast();
            }else{
                nums[k ++] = deq2.pollFirst();
            }
        }
        while(!deq1.isEmpty()){
            nums[k ++] = deq1.pollLast();
        }
        while(!deq2.isEmpty()){
            nums[k ++] = deq2.pollFirst();
        }
        return nums;
    }
}

到了這里,關(guān)于代碼隨想錄二刷day01的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(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)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • 代碼隨想錄二刷day48

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

    2024年02月07日
    瀏覽(373)
  • 二刷代碼隨想錄——動態(tài)規(guī)劃day40

    一個本碩雙非的小菜雞,備戰(zhàn)24年秋招,計劃二刷完卡子哥的刷題計劃,加油! 二刷決定精刷了,于是參加了卡子哥的刷題班,訓(xùn)練營為期60天,我一定能堅持下去,迎來兩個月后的脫變的,加油! 推薦一手卡子哥的刷題網(wǎng)站,感謝卡子哥。代碼隨想錄 終于來到了守關(guān)boss。

    2024年03月11日
    瀏覽(85)
  • 代碼隨想錄day01

    ● 思維不難,主要是考察對代碼的掌控能力 ● 內(nèi)存中的存儲方式:存放在連續(xù)內(nèi)存空間上的相同類型數(shù)據(jù)的集合 ● 數(shù)組可以通過下標(biāo)索引獲取到下標(biāo)對應(yīng)的數(shù)據(jù) ● 數(shù)組下標(biāo)從0開始 ● 因?yàn)閮?nèi)存空間地址連續(xù),因此刪除或增加元素的時候,難免移動其他元素地址 ● Java中的

    2024年02月13日
    瀏覽(94)
  • 代碼隨想錄二刷 day06 | 哈希表之 242.有效的字母異位詞 349. 兩個數(shù)組的交集 202. 快樂數(shù) 1. 兩數(shù)之和

    代碼隨想錄二刷 day06 | 哈希表之 242.有效的字母異位詞 349. 兩個數(shù)組的交集 202. 快樂數(shù) 1. 兩數(shù)之和

    哈希表能解決什么問題呢?一般哈希表都是用來快速判斷一個元素是否出現(xiàn)集合里。 242.有效的字母異位詞 題目鏈接 解題思路: 題目的意思就是 判斷兩個字符串是否由相同字母組成。 字符a到字符z的ASCII是26個連續(xù)的數(shù)值,所以字符a映射為下標(biāo)0,相應(yīng)的字符z映射為下標(biāo)25。

    2024年02月07日
    瀏覽(20)
  • 代碼隨想錄Day1 | 數(shù)組01- leetcode 704、27

    題目鏈接:二分查找 關(guān)鍵問題: ????????- 邊界(left、right)、當(dāng)前查找值(middle) ? ? ? ? ? ? ? ? - target大于當(dāng)前查找值 -- 當(dāng)前查找區(qū)域的右邊,更改區(qū)間left ? ? ? ? ? ? ? ? - target小于當(dāng)前查找值 -- 當(dāng)前查找區(qū)域的左邊,更改區(qū)間right ? ? ? ? ? ? ? ? - middle的計

    2024年02月16日
    瀏覽(88)
  • 代碼隨想錄 day38 第九章 動態(tài)規(guī)劃part01

    ●??理論基礎(chǔ) ●??509.?斐波那契數(shù) ●??70.?爬樓梯 ●??746.?使用最小花費(fèi)爬樓梯 理論基礎(chǔ) 解決動態(tài)規(guī)劃必須要想清楚的點(diǎn) dp數(shù)組以及下標(biāo)的含義 遞推公式 dp數(shù)組如何初始化 遍歷順序 打印數(shù)組 檢查結(jié)果 關(guān)聯(lián) leetcode 509.?斐波那契數(shù) 思路 動規(guī)五部曲 dp數(shù)組以及下標(biāo)的含義

    2024年04月17日
    瀏覽(30)
  • 代碼隨想錄Day3 | 鏈表01-leetcode203、707、206

    題目鏈接:移除鏈表元素 思路: 鏈表中元素的添加和刪除關(guān)鍵是要 保證不斷鏈且指向關(guān)系正確 。對于刪除操作,鏈的修改涉及將待刪除元素的前一個元素指向待刪除元素的后一個元素,因此在判斷當(dāng)前元素是否需要刪除時,要記錄當(dāng)前元素的前后指針。 1.刪除頭結(jié)點(diǎn)時另作

    2024年02月16日
    瀏覽(92)
  • 代碼隨想錄二刷 |回溯 |分割回文串

    131.分割回文串 給定一個字符串 s,將 s 分割成一些子串,使每個子串都是回文串。 返回 s 所有可能的分割方案。 示例: 輸入: “aab” 輸出: [ [“aa”,“b”], [“a”,“a”,“b”] ] 回溯三部曲 遞歸函數(shù)參數(shù) 全局變量數(shù)組path存放切割后回文的子串,二維數(shù)組result存放結(jié)果集 參數(shù)

    2024年01月24日
    瀏覽(303)
  • 代碼隨想錄二刷-哈希表-幾數(shù)之和 (JS)

    題目 編寫一個算法來判斷一個數(shù) n 是不是快樂數(shù)。 「快樂數(shù)」 定義為: 對于一個正整數(shù),每一次將該數(shù)替換為它每個位置上的數(shù)字的平方和。 然后重復(fù)這個過程直到這個數(shù)變?yōu)?1,也可能是 無限循環(huán) 但始終變不到 1。 如果這個過程 結(jié)果為 1,那么這個數(shù)就是快樂數(shù)。 如果

    2023年04月18日
    瀏覽(91)
  • 代碼隨想錄day24 開啟回溯算法

    感覺回溯算法其實(shí)和遞歸很像,也是用遞歸的做法,也有三部曲,但又不太一樣的地方是遞歸中類似二叉樹,只有縱向遍歷(一層層往下遍歷,沒有橫向遍歷),而回溯算法中多的for循環(huán)就是橫向遍歷,說實(shí)話這一點(diǎn)我沒有理解的太深,只是知道它類似于兩個for循環(huán)中的第一

    2024年01月16日
    瀏覽(108)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包