成都金牛网站建设公司,wordpress 头部模板,响应式网站建设好么,网页设计个人主页模板1005.K次取反后最大化的数组和每日编程中遇到任何疑问、意见、建议请公众号留言或直接撩Q474356284(备注每日编程)给定一个整数数组 A#xff0c;我们只能用以下方法修改该数组#xff1a;我们选择某个个索引 i 并将 A[i] 替换为 -A[i]#xff0c;然后总共重复这个过程 K 次… 1005.K次取反后最大化的数组和每日编程中遇到任何疑问、意见、建议请公众号留言或直接撩Q474356284(备注每日编程)给定一个整数数组 A我们只能用以下方法修改该数组我们选择某个个索引 i 并将 A[i] 替换为 -A[i]然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后返回数组可能的最大和。示例 1输入A [4,2,3], K 1输出5解释选择索引 (1,) 然后 A 变为 [4,-2,3]。示例 2输入A [3,-1,0,2], K 3输出6解释选择索引 (1, 2, 2) 然后 A 变为 [3,1,0,2]。示例 3输入A [2,-3,-1,5,-4], K 2输出13解释选择索引 (1, 4) 然后 A 变为 [2,3,-1,5,4]。提示1 A.length 100001 K 10000-100 A[i] 100解决方法(1)算法的基本思想算法一只要K未减为0每次都找到数组的最小值将其取反最后求和。算法二对数组从大至小排序遍历数组。如果当前数组元素大于0则加至res如果当前数组元素小于0 K大于0则取反加至res中 K小于等于0直接加至res中遍历完数组后对K进行判断如果K为奇数则res需要减去最后一个元素(最小值)的2倍。(注比如4,3,2数组K 1res 432如果K为偶数我们可以将2取反变成-2再取反变成2但是如果K为奇数我们总要将数组中的其中一个数取反而在遍历数组的过程中我们遇到正的就加起来了并未取反所以最后需要减掉最小值的2倍)(2)代码实现class Solution{public: int largestSumAfterKNegations(vectorint A, int K){ while (K--) { auto smallest min_element(begin(A), end(A)); (*smallest) * -1; } return accumulate(A.begin(), A.end(), 0); }};class Solution{public: int largestSumAfterKNegations(vectorint A, int K){ sort(A.begin(), A.end(), [](int a, int b) { return abs(a) abs(b); }); int res 0; for (int ele : A) { if (ele 0) res ele; else K 0 ? res -ele, K-- : res ele; } // res x abs(s) what we want is res x - abs(s), so: if (K % 2) res - 2 * abs(A.back()); return res; }};明日预告中南大学上机题(一)大家都很关心考试的难易程度。K老师出题有一个规律在出题之前他会随机写下一个字符串只要在这个字符串中能按顺序找到EASY四个字母他出题就会比较简单。你拿到了字符串请你告诉别人题目难不难吧。输入格式输入的数据有多组每组占一行由一个字符串组成(字符串的长度不超过1000)。输出格式对于每组输入数据输出一行对应一个要求的答案(题目简单就输出easy难就输出difficult)输入样例eAsySEoAtSNY输出样例difficulteasy