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

數(shù)組的知識點(diǎn)

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

1、概念

數(shù)組是存放在連續(xù)空間上的相同類型的數(shù)據(jù)集合。
特點(diǎn):
1、數(shù)組下標(biāo)都是從0開始的;
2、數(shù)組內(nèi)存空間的地址是連續(xù)的。

C++,要注意vector和array的區(qū)別,vector的底層實(shí)現(xiàn)是array,嚴(yán)格來講vector是容器,不是數(shù)組。
C++中二位數(shù)組在地址空間是連續(xù)的。測試代碼:

void test_arr() {
    int array[2][3] = {
  {0, 1, 2},
  {3, 4, 5}
    };
    cout << &array[0][0] << " " << &array[0][1] << " " << &array[0][2] << endl;
    cout << &array[1][0] << " " << &array[1][1] << " " << &array[1][2] << endl;
}

int main() {
    test_arr();
}

2、二分查找 主要理解區(qū)間定義,對循環(huán)條件的影響

特點(diǎn):前提是有序數(shù)組,而且沒有無重復(fù)元素
題目:https://leetcode-cn.com/problems/binary-search/.
首位置 末尾位置,中間位置。
當(dāng)中間位置的數(shù)字>目標(biāo)數(shù)字 末尾位置挪移到中間位置
當(dāng)中間位置的數(shù)字<目標(biāo)數(shù)字 首位置挪移到中間位置
中間位置<0 中間位置>末尾位置 非法邊界。
第一種寫法 [left,right]
第二種寫法[left,right)

int search(int* nums, int numsSize, int target){
    int left = 0;
    int right = numsSize - 1; 

    while (left <= right){
        int middle = left + ((right - left) / 2); //防止溢出  防止什么溢出

        if (nums[middle] > target) {
            right = middle - 1;
        } else if (nums[middle] < target){
            left = middle + 1;
        }
        else{
            return middle;
        }
    }

    return -1;

}

2.1搜索插入位置(有序數(shù)組,要直接想到二分查找)

/*
題目:https://leetcode.cn/problems/search-insert-position/
給定一個排序數(shù)組和一個目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值
不存在于數(shù)組中,返回它將會被按順序插入的位置。
特點(diǎn):有序數(shù)組
解題思路:
1、用二分查找,查詢是否在數(shù)組中
2、若在返回索引
3、若不在,移動數(shù)組元素,把target插入數(shù)組中。從哪個索引開始移動數(shù)組元素,target插入
索引位置是哪?
*/
#include <stdio.h>

#define SIZE 4

int searchInsert(int* nums, int numsSize, int target);

int main()
{
    int nums[SIZE] = {1,3,5,6};
    int target = 0,targetIndex = 0;

    printf("請輸入你要查詢的數(shù)值:");
    scanf("%d", &target);

    targetIndex = searchInsert(nums,SIZE,target);

    if (targetIndex != -1)
    {
        printf("%d的索引是%d\n",target, targetIndex);
    }
    else
    {
        for (int i = 0; i < SIZE; i++)
        {
            printf("%d ",nums[i]);
        }
    }

}

int searchInsert(int* nums, int numsSize, int target)
{
    int left = 0,right = numsSize - 1;       //閉區(qū)間
    int middle = 0;

    while (left <= right)                    //循環(huán)條件是<開區(qū)間還是<= 為什么?<= 因為選擇的閉區(qū)間的寫法。若是選擇左閉右開的寫法 選擇<,并且保證循環(huán)過程中區(qū)間都是左閉右開。
    {
        middle = left + ((right - left) << 2);   //防止索引越界
        
        if (target < nums[middle])
        {
            right = middle -1;              //保持循環(huán)過程中是閉區(qū)間
        }
        else if (target > nums[middle])
        {
            left = middle + 1;              //保持循環(huán)過程中是閉區(qū)間
        }
        else
        {
            return middle;
        }
    }

    return left;        //為什么是left而不是middle。循環(huán)結(jié)束時,left的值滿足。
}

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

題目:https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/
解題思路:

2.3 x 的平方根

題目:https://leetcode.cn/problems/sqrtx/
解題思路:

2.4 有效的完全平方數(shù)

題目:https://leetcode.cn/problems/valid-perfect-square/
解題思路:

3、移除元素

題目:https://leetcode-cn.com/problems/remove-element/
第一種:暴力實(shí)現(xiàn)
第二種:雙指針:一個快指針,一個慢指針
快指針是尋找這個新數(shù)組里所需要的元素(除去所需要刪除目標(biāo)元素的元素)
新數(shù)組的更新的位置就是slow。
在快指針獲取到的值賦給慢指針就可以了。

int removeElement(int* nums, int numsSize, int val){
    int slowIndex = 0;
    for (int fastIndex = 0; fastIndex < numsSize; fastIndex++){
        if (val != nums[fastIndex]){
            nums[slowIndex++] = nums[fastIndex];
        }
    }

    return slowIndex;
};

類似題目:
26 刪除排序數(shù)組中的重復(fù)項
283 移動零
844 比較含退格的字符串

有序數(shù)組的平方

題目:https://leetcode-cn.com/problems/squares-of-a-sorted-array/
第一種方法:暴力解法 每個數(shù)平方之后,排序即可
第二種方法:雙指針法
考慮題目的特征:有序數(shù)組,那么數(shù)組的平方的最大值就在數(shù)組的兩端,不是最左邊就是最右邊,不可能是中間。
此時可以考慮雙指針法,i指向起始位置,j指向終止位置
定義一個新數(shù)組result,和A數(shù)組一樣的大小,讓k指向result數(shù)組終止位置。
怎么想到定義了一個新數(shù)組?因為數(shù)組的元素已經(jīng)改變,不僅是位置的改變還有內(nèi)容的改變。

#include <stdio.h>
#include <math.h>

int main()
{
    int originalArr[5] = {-3,-2,4,5,6};
    int newArr[5] = {0};
    int i = 0;
    int j = 4;
    int k = 4;

    /*
    首先比較初始元素的平方和末尾元素的平方大小
    其次,將較大的一方放入新數(shù)組的末尾位置,并移動i或j的位置。

    循環(huán)結(jié)束的條件,i <= j
    */
   while (i <= j)
   {
        if (pow(originalArr[i],2) > pow(originalArr[j],2))
        {
            newArr[k] = pow(originalArr[i],2); 
            i++;
            k--;
        }
        else
        {
            newArr[k] = pow(originalArr[j],2);
            j--;
            k--;
        }
   }

   for (int i = 0; i < 5; i++)
   {
        printf("%d ",newArr[i]);
   }
   

   return 0;

}

長度最小的子數(shù)組(滑動窗口)

螺旋矩陣

題目:https://leetcode-cn.com/problems/spiral-matrix-ii/文章來源地址http://www.zghlxwxcb.cn/news/detail-421304.html

總結(jié)

到了這里,關(guān)于數(shù)組的知識點(diǎn)的文章就介紹完了。如果您還想了解更多內(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)文章

  • Linux知識點(diǎn) -- 進(jìn)程概念(補(bǔ)充)

    Linux知識點(diǎn) -- 進(jìn)程概念(補(bǔ)充)

    在用戶每次使用malloc等函數(shù)在進(jìn)程的堆區(qū)申請地址時,用戶只需要指定空間的大小,并且會得到一個起始地址,而不會得到結(jié)束地址; 因為 堆區(qū)的結(jié)構(gòu)都是由 vm_area_struct 管理的,每次malloc都會申請一個該結(jié)構(gòu)體; malloc在堆上申請空間時,只需要知道起始地址,不需要知道結(jié)

    2024年02月13日
    瀏覽(94)
  • ES6知識點(diǎn)匯總(2)--數(shù)組

    1、擴(kuò)展運(yùn)算符的應(yīng)用 ES6通過擴(kuò)展元素符…,就像rest 參數(shù)的逆運(yùn)算,將一個數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列 主要用于函數(shù)調(diào)用的時候,將一個數(shù)組變?yōu)閰?shù)序列 能夠更簡單實(shí)現(xiàn)數(shù)組復(fù)制 數(shù)組的合并也更為簡潔 注意:通過擴(kuò)展運(yùn)算符實(shí)現(xiàn)的是淺拷貝,修改了引用指向的值,

    2024年02月13日
    瀏覽(29)
  • C語言:數(shù)組、字符串知識點(diǎn)整理:

    補(bǔ)充 :數(shù)組長度= sizeof(arr)/sizeof(arr[0]) 注意: !??! 不適用于當(dāng)arr 充當(dāng)形參時(函數(shù)傳參) !??! 因為函數(shù) 傳遞 的是 int arr[0] 的 地址(指針) ,而 不是數(shù)組內(nèi)容 , 若在此情況計算整形數(shù)組長度 ????????在X86系統(tǒng)下,指針大小為 4 ,所以計算結(jié)果為4/4=1; ??????

    2024年03月10日
    瀏覽(24)
  • AUTOSAR知識點(diǎn) 之 XCP (二):XCP基礎(chǔ)概念

    目錄 1、概述 2、概念解讀 2.1、MCD-X(X= 123) 2.2、CTO與DTO 2.3、Polling模式

    2024年02月08日
    瀏覽(21)
  • C語言零碎知識點(diǎn)之字符串?dāng)?shù)組

    在C語言中字符串?dāng)?shù)組有兩種表示方法: 第一種, 二維字符數(shù)組 可以利用二維字符數(shù)組來表示字符串,格式是: char strs[row][col]; 。例如: 其中的 row 表示二維數(shù)組中的行,表示有幾個字符串;而 col 表示二維數(shù)組中的列,表示能存放字符串的最大長度。 第二種, 字符指針數(shù)

    2024年01月18日
    瀏覽(21)
  • 論文筆記--網(wǎng)絡(luò)重要節(jié)點(diǎn)排序方法綜述(概念性知識點(diǎn))

    任曉龍, 呂琳媛 度中心性:節(jié)點(diǎn)的直接鄰居數(shù)目 半局部中心性:節(jié)點(diǎn)四層鄰居的信息 k-shell分解:度中心性的擴(kuò)展,根據(jù)節(jié)點(diǎn)在網(wǎng)絡(luò)中的位置來定義,越在核心的節(jié)點(diǎn)越重要 1.1度中心性(DC) 節(jié)點(diǎn)的度分為入度和出度;權(quán)重為與節(jié)點(diǎn)相連的邊的權(quán)重之和 優(yōu)缺點(diǎn): 優(yōu)點(diǎn):簡單

    2024年02月05日
    瀏覽(23)
  • MATLAB知識點(diǎn):isempty函數(shù)(★★★★☆)判斷數(shù)組是否為空

    MATLAB知識點(diǎn):isempty函數(shù)(★★★★☆)判斷數(shù)組是否為空

    ?講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數(shù)學(xué)建模清風(fēng)主講》。? MATLAB教程新手入門篇(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili 節(jié)選自第3章:課后習(xí)題講解中拓展的函數(shù) 在講解第三章課后習(xí)題的過程中,我給大家拓展了一些講義中沒有

    2024年04月22日
    瀏覽(23)
  • c#多線程—基礎(chǔ)概念到“雙色球”項目實(shí)現(xiàn)(附知識點(diǎn)目錄、代碼、視頻)

    c#多線程—基礎(chǔ)概念到“雙色球”項目實(shí)現(xiàn)(附知識點(diǎn)目錄、代碼、視頻)

    總結(jié):視頻中對于多線程講的非常透徹,從線程基礎(chǔ)概念—.net不同版本出現(xiàn)的線程方法—多線程常出現(xiàn)問題—雙色球項目實(shí)踐,每個知識點(diǎn)都有代碼實(shí)操,受益匪淺。附上學(xué)習(xí)筆記和實(shí)操代碼。 視頻 線程:程序執(zhí)行的最小單位,任何操作都是由線程完成的,使用同步時,資

    2024年02月11日
    瀏覽(89)
  • Js水幾個基礎(chǔ)知識點(diǎn):數(shù)組的操作,字符串和數(shù)組之間的互轉(zhuǎn),持續(xù)補(bǔ)充,歡迎關(guān)注

    一、插入 / 刪除元素: 我們就不從創(chuàng)建開始講了,那個太基礎(chǔ)了,js創(chuàng)建數(shù)組一般都直接let arr = […,…,…],有部分仁兄喜歡new Array(…, …, …),這樣看起來可能高級點(diǎn),結(jié)果是一樣的哈。 這里我們直接來討論插入元素: 1、在末尾插入 / 刪除元素(push / pop,操作原數(shù)組)

    2024年02月09日
    瀏覽(50)
  • 本文將從云原生的概念、背景知識、Kubernetes架構(gòu)及核心組件、應(yīng)用場景、案例研究等方面深入剖析云原生課程的相關(guān)知識點(diǎn)

    作者:禪與計算機(jī)程序設(shè)計藝術(shù) 2020年,技術(shù)快速發(fā)展,云計算火爆。云原生領(lǐng)域也隨之蓬勃發(fā)展。云原生已經(jīng)成為大勢所趨,大量企業(yè)都在逐漸轉(zhuǎn)型云原生應(yīng)用架構(gòu)。國內(nèi)外云服務(wù)廠商也紛紛推出基于Kubernetes的服務(wù)平臺,而Kubernetes又是云原生開源技術(shù)體系的一部分。為了幫

    2024年02月07日
    瀏覽(50)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包