【PTA數據結構 | C語言版】連續子序列最大和

本專欄持續輸出數據結構題目集,歡迎訂閱。

文章目錄

    • 題目
    • 代碼

題目

給定 n 個整數組成的序列 { a1 ,a2 ,?,an },“連續子序列”被定義為 { ai ,ai+1 ,?,aj },其中 1≤i≤j≤n。“連續子序列最大和”則被定義為所有連續子序列元素的和中最大者。例如給定序列 { -2, 11, -4, 13, -5, -2 },其連續子序列 { 11, -4, 13 } 有最大的和 20。請編寫程序,計算給定整數序列的連續子序列最大和。

本題旨在測試各種不同的算法在各種數據情況下的表現。各組測試數據特點如下:

數據 0~6:測試基本正確性;
數據 7:10^3 個隨機整數;
數據 8:10^4 個隨機整數;
數據 9:10^5 個隨機整數。

輸入格式:
輸入第一行給出正整數 n (≤10^5 );第二行給出 n 個整數,絕對值均不超過 100,其間以空格分隔。

輸出格式:
在第一行中輸出連續子序列最大和,第二行輸出該子序列首尾的數組下標(從 0 開始),以 1 個空格分隔。若解不唯一,則輸出最小的數組下標(如樣例所示)。
注意:如果序列中所有整數皆為零或負數,則取空子列的結果是最大的,為 0;此時空子序列數組首尾的下標均為 -1。

輸入樣例:
10
-10 2 2 3 4 -5 -23 4 7 -21

輸出樣例:
11
1 4

代碼

#include <stdio.h>int main() {int n;scanf("%d", &n);int arr[100000];for (int i = 0; i < n; i++) {scanf("%d", &arr[i]);}int current_sum = 0;  // 當前子序列的和int max_sum = 0;      // 全局最大子序列和int start = -1;       // 最大子序列起始下標int end = -1;         // 最大子序列結束下標int temp_start = 0;   // 當前候選子序列的起始下標// 標記序列中是否存在正數,用于處理全非正數的情況int has_positive = 0;  // 遍歷數組,動態計算最大子序列和for (int i = 0; i < n; i++) {if (arr[i] > 0) has_positive = 1;  // 存在正數則標記為真// 如果當前子序列和為負,重置為0并更新候選起始位置if (current_sum < 0) {current_sum = 0;temp_start = i;  // 從當前位置開始新的子序列}current_sum += arr[i];  // 累加當前元素// 當新的子序列和更大時,更新全局最優解if (current_sum > max_sum) {max_sum = current_sum;start = temp_start;end = i;}}// 處理全非正數的特殊情況if (!has_positive) {printf("0\n-1 -1\n");} else {printf("%d\n%d %d\n", max_sum, start, end);}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87949.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vrrp配置和原理

Vrrp配置和原理 文章目錄Vrrp配置和原理概述物理與邏輯拓撲重點vrid虛擬路由器虛擬IP地址及虛擬MAC地址超時時間計算-MASTER_DOWNvip 管理員手動指定方法Master路由器Backup路由器PriorityVRRP報文格式VRRP狀態機從Backup到masterVRRP協議狀態二.優先級一樣比較接口IPVRRP優先級…

可編輯59頁PPT | 某大型集團人工智能數字化轉型SAP解決方案

薦言摘要&#xff1a;某大型集團人工智能數字化轉型中&#xff0c;SAP解決方案扮演著智能中樞角色&#xff0c;深度融合AI技術與核心業務場景&#xff0c;破解傳統系統“數據孤島流程僵化”雙重困局。針對集團跨產業、多業態特點&#xff0c;方案以SAP S/4HANA為數據底座&#…

【RK3568 驅動開發:實現一個最基礎的網絡設備】

RK3568 驅動開發&#xff1a;實現一個最基礎的網絡設備一、引言二、編寫網絡設備驅動代碼1. 核心數據結構與接口2. 核心功能實現3. 網絡命名空間管理4.源代碼三、編譯與驗證1.加載模塊2.驗證網絡四、注意事項一、引言 RK3568 作為一款高性能 ARM 架構處理器&#xff0c;廣泛應…

CAIDCP系列對話:AI 驅動安全

數字時代&#xff0c;AI浪潮翻涌&#xff0c;網絡安全攻防戰已悄然升級&#xff1a; 某工業控制系統遭AI驅動勒索攻擊&#xff1a;攻擊者借 AI 精準捕捉異常網絡掃描、遠程 PowerShell 痕跡&#xff0c;瞬間加密文件索要贖金&#xff1b; 另一邊&#xff0c;某大型科技公司用AI…

ARMv8 沒開mmu執行memset引起的非對齊訪問異常

最近在haps上驗證一個新的芯片&#xff0c;記錄一下memset訪問出錯的問題。在沒開mmu和cache的情況下&#xff0c;對全局變量指針進行memset清零操作&#xff0c;發現每次都會出現異常。最后發現是沒開mmu導致出現了數據非對齊訪問導致報錯。排查EC區域發現是0x25&#xff0c;產…

基于LiveKit Go 實現騰訊云實時音視頻功能

詳細的生產部署建議&#xff0c;適用于 LiveKit Go 服務器 Web 客戶端 TURN/HTTPS。 1. 服務器準備 推薦使用云服務器&#xff08;如阿里云、騰訊云、AWS、Azure等&#xff09;&#xff0c;公網IP&#xff0c;帶寬建議≥10Mbps。系統推薦 Ubuntu 20.04/22.04 或 CentOS 7/8&…

三位一體:Ovis-U1如何以30億參數重構多模態AI格局?

1. 時代命題&#xff1a;多模態統一模型的破局之戰當GPT-4o以萬億級參數構建多模態帝國時&#xff0c;中國AI軍團正在書寫另一種答案。Ovis-U1用30億參數證明&#xff1a;參數量并非決定性因素&#xff0c;架構創新與訓練策略的化學反應&#xff0c;同樣能催生出改變游戲規則的…

圖像處理基礎:鏡像、縮放與矯正

在圖像處理中&#xff0c;鏡像、縮放和矯正操作是常見的圖像變換手段。這些操作可以幫助我們對圖像進行調整&#xff0c;以滿足不同的需求。本文將詳細介紹這三種操作的原理和實現方法&#xff0c;并通過代碼示例展示它們的實際應用。一、圖片鏡像旋轉1.1 什么是鏡像旋轉&#…

「Java案例」猜數游戲

案例實現 猜數字游戲 設計一個三位數的猜數游戲,三位數隨機生成。程序提示用戶輸入一個三位的數字,依照以下的規則決定贏取多少獎金:1) 如果用戶輸入的數字和隨機數字完全一致,輸出:“恭喜恭喜!完全猜對了!獲得三個贊!”2) 如果用戶輸入的數字覆蓋了隨機生成的所有數…

創客匠人解析創始人 IP 內卷:知識變現時代的生存邏輯與破局路徑

當知識付費行業進入 “存量競爭” 階段&#xff0c;創始人 IP 的 “內卷” 已非選擇而是必然。創客匠人在服務數萬知識創業者的實踐中發現&#xff0c;那些實現逆勢增長的案例&#xff0c;其核心差異往往在于創始人是否具備 “從幕后走到臺前” 的決心與能力 —— 這種內卷并非…

250705-Debian12-sudo apt update加速+配置RDP遠程桌面環境+設置FRP服務為開機啟動項

A. 實現sudo apt update加速 在 Debian 12 上運行 sudo apt update 很慢的常見原因包括&#xff1a; &#x1f50d; 一、常見原因分析 使用了國外的軟件源 默認 Debian 安裝源多數是國際服務器&#xff0c;國內訪問會非常慢。 DNS 解析慢或失敗 軟件源地址解析時間長&#xf…

數學視頻動畫引擎Python庫 -- Manim Voiceover 語音服務 Speech Services

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。 Manim Voiceover 是一個為 Manim 打造的專注于語音旁白的插件&#xff1a; 直接在 Python 中添加語音旁白&#xff1a; 無需使用視頻編輯器&…

C++11 forward_list 從基礎到精通:原理、實踐與性能優化

文章目錄一、為什么需要 forward_list&#xff1f;二、基礎篇&#xff1a;forward_list 的核心特性與接口2.1 數據結構與迭代器2.2 常用接口速覽2.3 基礎操作示例&#xff1a;從初始化到遍歷2.3.1 初始化與遍歷2.3.2 插入與刪除&#xff1a;before_begin 的關鍵作用三、進階篇&…

物聯網技術的核心組件與發展趨勢(截至2025年)

一、物聯網技術的核心組件物聯網&#xff08;IoT&#xff09;技術體系由感知層、網絡層、平臺層、應用層和安全層構成&#xff0c;各層技術協同工作&#xff0c;實現物理世界與數字世界的深度融合。1. 感知層&#xff1a;數據采集與交互傳感器技術&#xff1a;類型&#xff1a;…

面試中常見的問題:JavaScript 宏任務與微任務,包教包會

事件循環Event Loop 我們都知道&#xff0c;JavaScript 是一種單線程的編程語言&#xff0c;簡單的說就是&#xff1a;js只有一條通道&#xff0c;那么在任務多的情況下&#xff0c;就會出現擁擠的情況&#xff0c;這種情況下就產生了 ‘多線程’ &#xff0c;但是這種“多線程…

【LeetCode102.二叉樹的層序遍歷】vs.【LeetCode103.二叉樹的鋸齒形層序遍歷】

題目鏈接 LeetCode102.二叉樹的層序遍歷&#xff1a;102. 二叉樹的層序遍歷 - 力扣&#xff08;LeetCode&#xff09;LeetCode103.二叉樹的鋸齒形層序遍歷&#xff1a;103. 二叉樹的鋸齒形層序遍歷 - 力扣&#xff08;LeetCode&#xff09; 實現思路 定義一個隊列&#xff0…

Redis On-CPU Profiling定位瓶頸到可視化火焰圖

1 . 前置檢查&#xff1a;確認 CPU 真的是瓶頸 在正式打性能“補丁”前&#xff0c;務必跑一遍系統級健康核對表&#xff08;推薦 Brendan Greg 的 USE Method&#xff09;&#xff1a;資源關注指標常用工具CPUUtil/Idle、RunQueuetop、vmstat、sar內存Fault、Swap、Cache Miss…

未來趨勢:AI與量子計算對服務器安全的影響

隨著技術的飛速發展&#xff0c;人工智能&#xff08;AI&#xff09;和量子計算正在深刻改變信息技術的各個領域。特別是在服務器安全領域&#xff0c;這兩項技術既帶來了新的可能性&#xff0c;也帶來了前所未有的挑戰。本文將探討AI和量子計算技術對服務器安全的影響&#xf…

markdown學習筆記(個人向) Part.1

markdown學習筆記&#xff08;個人向&#xff09; Part.1 1. 推薦插件 markdown&#xff1a; 安裝支持markdown的插件&#xff1b; markdown-preview-github-styles&#xff1a; 可以將VS Code上默認的markdown預覽樣式修改成github上常用的形式&#xff0c;很大程度上提高文件…

ZooKeeper 實現分布式鎖

1. 分布式鎖概述 在分布式系統中&#xff0c;為了保證共享資源在并發訪問下的數據一致性&#xff0c;需要引入分布式鎖。分布式鎖是一種在分布式環境下控制多個進程對共享資源進行互斥訪問的機制。它與單機環境下的鎖&#xff08;如Java中的synchronized或Lock&#xff09;不同…