From cc9b311081118b51c37c351396d0fffd2354af85 Mon Sep 17 00:00:00 2001 From: mhrooz Date: Mon, 4 Dec 2023 11:30:00 +0100 Subject: [PATCH] 1423 a spliting window but hard to recognize... --- 1423-231205-pass/main.cpp | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 1423-231205-pass/main.cpp diff --git a/1423-231205-pass/main.cpp b/1423-231205-pass/main.cpp new file mode 100644 index 0000000..bbe557f --- /dev/null +++ b/1423-231205-pass/main.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; +class Solution { +public: + int maxScore1(vector& cardPoints, int k) { + const int len = 1e5+10; + const int siz = cardPoints.size(); + int h2t_state[len][2]= {}, t2h_state[len][2] = {}; + h2t_state[0][1] = cardPoints[0]; + t2h_state[siz-1][1] = cardPoints[siz - 1]; + for(int i = 2 ; i <= k ; i++){ + int idx = i%2; + for(int j = 0 ; j < i ; j++){ + // h2t_state[j][idx] = t2h_state[siz-j-1][1-idx] + cardPoints[j]; + // t2h_state[siz-j-1][idx] = h2t_state[j][1-idx] + cardPoints[siz-j-1]; + if(j == 0){ + h2t_state[j][idx] = t2h_state[siz - i + 1][1-idx] + cardPoints[j]; + t2h_state[siz-j-1][idx] = h2t_state[ i - 2 ][1-idx] + cardPoints[siz-j-1]; + }else{ + h2t_state[j][idx] = h2t_state[j-1][1-idx] + cardPoints[j]; + t2h_state[siz-j-1][idx] = t2h_state[siz-j][1-idx] + cardPoints[siz-j-1]; + } + } + // cout<<"i: "<& cardPoints, int k){ + int sum = 0; + int ans = 0; + int sz = cardPoints.size(); + for(int i = 0 ; i < k ; i++) sum+=cardPoints[i]; + ans = sum; + for(int i = 0 ; i < k ; i++){ + sum-=cardPoints[k - i - 1]; + sum+=cardPoints[sz - 1 - i]; + ans = max(ans, sum); + cout< ex1 = {1,2,3,4,5,6,1}; + int k1 = 3; + cout< ex2 = {2,2,2}; + int k2 = 2; + cout< ex3 = {9,7,7,9,7,7,9}; + int k3 = 7; + cout<