91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C編程:“最大子數(shù)組的和” 的動態(tài)規(guī)劃的解法

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-08-21 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C編程筆試 --“最大子數(shù)組的和” 的動態(tài)規(guī)劃的解法

?1.最大子數(shù)組之和

例1:數(shù)組int a1[5] = { -1, 5, 6, -7, 3 };其最大子數(shù)組之和為:5+6=11
例2:數(shù)組int a2[5] = { -5, -4, -8, -1, -10 };其最大子數(shù)組之和為:-1
例3:數(shù)組 int a3[5] = { -1, 5, 6, -7, 10 };其最大子數(shù)組之和為:5+6-7+10=14

??功能實(shí)現(xiàn):

# include 
# include 
int MaxSum(int* arr, int size)
{
    int current = arr[0]; //當(dāng)前數(shù)組最大和
    int max = current;

    for (int i = 0; i < size; i++)
    {
        if (current < 0)
            current = 0;
        current += arr[i];
        if (current > max)
            max = current;
    }
    return max;
}

int main(void)
{
    char x[40], y[40];

    int a1[5] = { -1, 5, 6, -7, 3 };
    int a2[5] = { -5, -4, -8, -1, -10 };
    int a3[5] = { -1, 5, 6, -7, 10 };

    int max1, max2, max3;
    max1 = MaxSum(a1, 5);
    max2 = MaxSum(a2, 5); //這個(gè)應(yīng)該返回 -1, 
    max3 = MaxSum(a3, 5);
	printf("max1=%d,max2=%d,max3=%d\n",max1,max2,max3);
}

?2.獲取最大子數(shù)組的開始和結(jié)束的下標(biāo)

??如果我需要返回值返回這個(gè)最大子數(shù)組的開始和結(jié)束的下標(biāo),你要怎么修改這個(gè)程序?

例1:數(shù)組int a1[5] = { -1, 5, 6, -7, 3 };其最大子數(shù)組之和為:5+6=11;最大子數(shù)組開始和結(jié)束下標(biāo)為:1 2。
例2:數(shù)組int a2[5] = { -5, -4, -8, -1, -10 };其最大子數(shù)組之和為:-1;最大子數(shù)組開始和結(jié)束下標(biāo)為:3 3。
例3:數(shù)組 int a3[5] = { -1, 5, 6, -7, 10 };其最大子數(shù)組之和為:5+6-7+10=14 ; 最大子數(shù)組開始和結(jié)束下標(biāo)為:1 4。
例4:數(shù)組 int a3[] = {-2, -1, -3, 4, -1, 2, 1, -5, 4};其最大子數(shù)組之和為:4+(-1)+2+1=6 ; 最大子數(shù)組開始和結(jié)束下標(biāo)為:3 6。
??功能實(shí)現(xiàn):

#include 
#include 
void solution(int m, int *arr){
    int current=arr[0];
    int max=current;
    int start=0,end=0;
    int i=0;
    /*計(jì)算最大子數(shù)組之和*/
    for(i=1;imax)
        {
            max = current;
            end=i;//最大子數(shù)組結(jié)束下標(biāo)
        }
    }
	int temp=max;
	/*計(jì)算最大子數(shù)組結(jié)束下標(biāo)*/
    for(i=end;i>=0;i--)
    {
	  temp-=arr[i];
      if(temp<=0 || temp>max)break;
    }
	if(i<0)i=0;
    start=i;
    printf("%d,%d %d\n",max,start,end);
}
int main() {
    int n;
	printf("輸入個(gè)數(shù):");
    scanf("%d", &n);
    int *arr;
    arr = (int*)malloc(n * sizeof(int));
	printf("輸入%d個(gè)整數(shù):",n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    solution(n, arr);
    return 0;
}
;i++)>

??運(yùn)行結(jié)果:

pYYBAGMBfYaAP_I9AAMUkvwWkUo576.png#pic_center

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145642
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    27371
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    EN18031 認(rèn)證全解析:三大子標(biāo)準(zhǔn)搞定歐盟網(wǎng)絡(luò)安全合規(guī)

    2026年歐盟網(wǎng)絡(luò)安全監(jiān)管持續(xù)收緊,EN18031作為RED指令強(qiáng)制網(wǎng)絡(luò)安全標(biāo)準(zhǔn),已成為無線設(shè)備出海歐盟的核心門檻。該認(rèn)證由三大子標(biāo)準(zhǔn)構(gòu)成,分別對應(yīng)不同安全場景,精準(zhǔn)匹配即可高效完成合規(guī)。本文全面
    的頭像 發(fā)表于 02-06 15:41 ?1921次閱讀
    EN18031 認(rèn)證全解析:三<b class='flag-5'>大子</b>標(biāo)準(zhǔn)搞定歐盟網(wǎng)絡(luò)安全合規(guī)

    RT-Thread Vector軟件包:嵌入式開發(fā)的動態(tài)數(shù)組容器 | 技術(shù)集結(jié)

    RT-Thread Vector軟件包:嵌入式開發(fā)的動態(tài)數(shù)組容器 | 技術(shù)集結(jié)
    的頭像 發(fā)表于 01-25 09:33 ?5402次閱讀
    RT-Thread Vector軟件包:嵌入式開發(fā)的<b class='flag-5'>動態(tài)</b><b class='flag-5'>數(shù)組</b>容器 | 技術(shù)集結(jié)

    keil中c語言的動態(tài)分配內(nèi)存

    的大?。ó?dāng)然在C99中存在變長數(shù)組),但有時(shí)候我們也不能明確的指出要用多少空間,我們希望這塊空間可大可小,既不過大,造成空間浪費(fèi),也不能過小,不夠使用。這時(shí)就要用到我今天講到的動態(tài)內(nèi)存分配了,通過
    發(fā)表于 01-21 06:04

    C語言嵌入式系統(tǒng)編程注意事項(xiàng)-內(nèi)存操作

    啟動后第一條要執(zhí)行的指令的位置。 記?。汉瘮?shù)無它,唯指令集合耳;你可以調(diào)用一個(gè)沒有函數(shù)體的函數(shù),本質(zhì)上只是換一個(gè)地址開始執(zhí)行指令! 數(shù)組vs動態(tài)申請 在嵌入式系統(tǒng)中動態(tài)內(nèi)存申請存在比一般系統(tǒng)
    發(fā)表于 01-04 07:31

    C語言的編程技巧

    一個(gè)成員是一個(gè)未知大小的數(shù)組,適用于動態(tài)分配內(nèi)存并關(guān)聯(lián)一個(gè)可變長度的數(shù)組。? ?3、匿名結(jié)構(gòu)體和聯(lián)合體?:C語言允許在結(jié)構(gòu)體或聯(lián)合體中定義不帶標(biāo)簽的內(nèi)部結(jié)構(gòu)體或聯(lián)合體,簡化代碼結(jié)構(gòu)。
    發(fā)表于 11-27 06:46

    數(shù)組的初體驗(yàn)

    袋中的物品是按一定順序放置的。 1.我們來看一下如何聲明一個(gè)數(shù)組: 數(shù)據(jù)類型 數(shù)組名稱[長度]; 數(shù)組只聲明也不行啊,看一下數(shù)組是如何初始化的。說到初始化,
    發(fā)表于 11-25 08:06

    關(guān)于晶振的靜態(tài)電容與動態(tài)電容

    靜態(tài)電容與動態(tài)電容 C0與C1 的區(qū)別是什么呢?
    的頭像 發(fā)表于 11-21 15:38 ?4382次閱讀
    關(guān)于晶振的靜態(tài)電容與<b class='flag-5'>動態(tài)</b>電容

    基于感知引導(dǎo)的多步驟精細(xì)操作任務(wù)與運(yùn)動規(guī)劃

    傳統(tǒng)的任務(wù)與運(yùn)動規(guī)劃(TAMP)系統(tǒng)在機(jī)器人操作應(yīng)用中通常依賴靜態(tài)模型運(yùn)行,因此在面對新環(huán)境時(shí)往往表現(xiàn)不佳。將感知與操作相融合,是應(yīng)對這一挑戰(zhàn)的有效途徑,使機(jī)器人能夠在執(zhí)行過程中實(shí)時(shí)更新規(guī)劃,從而適應(yīng)動態(tài)變化的場景。
    的頭像 發(fā)表于 11-14 10:18 ?1465次閱讀
    基于感知引導(dǎo)的多步驟精細(xì)操作任務(wù)與運(yùn)動<b class='flag-5'>規(guī)劃</b>

    基于SIMP與折衷規(guī)劃法的航空附件齒輪箱結(jié)構(gòu)輕量化設(shè)計(jì)與動態(tài)特性提升

    航空發(fā)動機(jī)附件齒輪箱作為動力傳遞系統(tǒng)的關(guān)鍵部件,其箱體結(jié)構(gòu)設(shè)計(jì)直接影響發(fā)動機(jī)的功率密度、可靠性及振動特性。針對傳統(tǒng)經(jīng)驗(yàn)設(shè)計(jì)方法難以滿足高剛度、輕量化及高動態(tài)性能要求的挑戰(zhàn),本文提出了一種基于折衷規(guī)劃法的多目標(biāo)拓?fù)鋬?yōu)化方法。
    的頭像 發(fā)表于 11-07 15:21 ?752次閱讀
    基于SIMP與折衷<b class='flag-5'>規(guī)劃</b>法的航空附件齒輪箱結(jié)構(gòu)輕量化設(shè)計(jì)與<b class='flag-5'>動態(tài)</b>特性提升

    Cognizant籌辦最大規(guī)模氛圍編程活動

    -Cognizant正在籌辦全球最大規(guī)模的氛圍編程活動,以提升數(shù)千名員工的AI素養(yǎng) 為抓住人工智能經(jīng)濟(jì)將創(chuàng)造的巨大機(jī)遇,Cognizant與Lovable、Windsurf、Cursor
    的頭像 發(fā)表于 08-03 18:44 ?673次閱讀
    Cognizant籌辦<b class='flag-5'>最大</b>規(guī)模氛圍<b class='flag-5'>編程</b>活動

    在STM32F103c8上做DLQR最優(yōu)控制算法的C編程資料

    這是我近期做的一個(gè)項(xiàng)目--基于STM32F103c8的DLQR控制算法的C編程,涉及DLQR最優(yōu)控制算法、嵌入式STM32F103編程、CMSIS-DSP庫使用。? ??附有完整的程序
    發(fā)表于 07-23 15:30 ?0次下載

    AGV小車中的動態(tài)路徑規(guī)劃算法揭秘

    并非一成不變時(shí),動態(tài)路徑規(guī)劃能力就顯得至關(guān)重要。本文將深入探討幾種主流的動態(tài)路徑規(guī)劃算法(如A、Dijkstra、RRT等),并解析它們?nèi)绾卧贏GV行業(yè)中大顯身手。 為何需要
    的頭像 發(fā)表于 06-17 15:54 ?1718次閱讀
    AGV小車中的<b class='flag-5'>動態(tài)</b>路徑<b class='flag-5'>規(guī)劃</b>算法揭秘

    全球化市場調(diào)研新解法動態(tài)IP技術(shù)如何突破地域化數(shù)據(jù)壁壘

    當(dāng)某國際智能家居品牌試圖通過TikTok分析東南亞消費(fèi)者偏好時(shí),發(fā)現(xiàn)不同國家用戶看到的推薦內(nèi)容差異高達(dá)73%。這揭示了全球化市場調(diào)研的核心痛點(diǎn)——如何突破數(shù)字國界獲取真實(shí)本地?cái)?shù)據(jù)。動態(tài)IP技術(shù)正在成為破局關(guān)鍵,但其應(yīng)用遠(yuǎn)非簡單的IP切換。
    的頭像 發(fā)表于 05-06 15:54 ?649次閱讀

    單片機(jī)c語言編程實(shí)例大全

    單片機(jī)c語言編程實(shí)例大全_18
    發(fā)表于 04-30 16:11 ?7次下載

    C++學(xué)到什么程度可以找工作?

    、動態(tài)規(guī)劃、貪心算法等)。 3. **操作系統(tǒng)原理**:理解進(jìn)程與線程、并發(fā)控制、同步機(jī)制(如互斥鎖、信號量等)、進(jìn)程間通信等概念。 4. **網(wǎng)絡(luò)編程**:熟悉基于Socket的網(wǎng)絡(luò)編程
    發(fā)表于 03-13 10:19