<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      /*
      	線性DP問題	leetcode 53
      	給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
      	子數組是數組中的一個連續部分。
      
      	示例 1:
      	輸入:nums = [-2,1,-3,4,-1,2,1,-5,4]
      	輸出:6
      	解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 。
      
      	示例 2:
      	輸入:nums = [1]
      	輸出:1
      
      	示例 3:
      	輸入:nums = [5,4,-1,7,8]
      	輸出:23
      
      	設 dp[i] 表示以第 i 個元素結尾的連續子數組的最大和。對于每個元素 nums[i],有兩種選擇:
      
      	將 nums[i] 加入到以 nums[i-1] 結尾的連續子數組中。
      	以 nums[i] 作為新的連續子數組的起點。
      	因此,狀態轉移方程為:
      	dp[i] = max(dp[i-1] + nums[i], nums[i])
      
      	同時,我們需要記錄最大和以及對應的子數組的起始和結束位置。
      */
      
      #include <iostream>
      #include <vector>
      
      using namespace std;
      
      // 函數用于找出具有最大和的連續子數組
      pair<int, vector<int>> maxSubArray(vector<int>& nums) {
      	int n = nums.size();
      	if (n == 0) return {0, {}};  // 如果數組為空,直接返回 0 和空數組
      	// {-2, 1, -3, 4, -1, 2, 1, -5, 4}
      	int maxSum = nums[0];  // 記錄最大和
      	int currentSum = nums[0];  // 記錄當前以當前元素結尾的連續子數組的最大和
      	int start = 0, end = 0;  // 記錄最大和子數組的起始和結束位置
      	int tempStart = 0;  // 臨時記錄起始位置
      	
      	for (int i = 1; i < n; i++) {
      		// 根據狀態轉移方程更新當前和
      		if (currentSum + nums[i] > nums[i]) {
      			currentSum += nums[i];
      		} else {
      			currentSum = nums[i];
      			tempStart = i;  // 更新臨時起始位置
      		}
      		
      		// 更新最大和以及對應的起始和結束位置
      		if (currentSum > maxSum) {
      			maxSum = currentSum;
      			start = tempStart;
      			end = i;
      		}
      	}
      	
      	// 提取最大和子數組
      	vector<int> subArray(nums.begin() + start, nums.begin() + end + 1);
      	
      	return {maxSum, subArray};
      }
      
      int main() {
      	vector<int> nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
      	pair<int, vector<int>> result = maxSubArray(nums);
      	
      	cout << "最大和: " << result.first << endl;
      	cout << "最大和子數組: ";
      	for (int num : result.second) {
      		cout << num << " ";
      	}
      	cout << endl;
      	
      	return 0;
      }
      

        

      posted on 2025-03-02 16:27  FYJUN2077  閱讀(18)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 内射极品少妇xxxxxhd| 国产高清无遮挡内容丰富| 精品国产一区二区亚洲人| 又大又紧又粉嫩18p少妇| 国产精品午夜福利资源| 国产精品成人一区二区三| 午夜福利理论片高清在线| 桐梓县| 国产成人免费午夜在线观看| 亚洲欧美成人一区二区在线电影| 一区二区中文字幕久久| 国产一区二区三区高清视频| 国产成人精品一区二区三区| 亚洲精品久久久久成人2007| 欧洲无码一区二区三区在线观看| 亚洲AV无码久久精品日韩| av资源在线看免费观看| 日本深夜福利在线观看| 国产午夜福利不卡在线观看| a级国产乱理伦片在线观看al| 亚洲日本中文字幕乱码中文| 国产午夜美女福利短视频| 国产一级av在线播放| 国产三级无码内射在线看| 日韩精品一二三黄色一级| 精品一日韩美女性夜视频| 亚洲三区在线观看无套内射| 国产蜜臀在线一区二区三区| 免费无码高潮流白浆视频| 国产suv精品一区二区33| 国产视频有码字幕一区二区| 免费人成黄页在线观看国产| 亚洲熟妇无码爱v在线观看 | 精品国产人妻一区二区三区久久 | 日韩无专区精品中文字幕| 日本中文字幕不卡在线一区二区| 人妻日韩精品中文字幕| 97人妻无码一区| 国产精品福利在线观看无码卡一| 8x国产精品视频| 垣曲县|