当前位置: 首页 > news >正文

微网站app制作实木餐桌椅网站建设公司

微网站app制作,实木餐桌椅网站建设公司,做外贸雨伞到什么网站,苏州seo优化公司题目 1005 K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k #xff0c;按以下方法修改该数组#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后#xff0c;返回数组 可…题目 1005 K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k 按以下方法修改该数组 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后返回数组 可能的最大和 。 示例 1 输入nums [4,2,3], k 1 输出5 解释选择下标 1 nums 变为 [4,-2,3] 。 示例 2 输入nums [3,-1,0,2], k 3 输出6 解释选择下标 (1, 2, 2) nums 变为 [3,1,0,2] 。 示例 3 输入nums [2,-3,-1,5,-4], k 2 输出13 解释选择下标 (1, 4) nums 变为 [2,3,-1,5,4] 。 来源力扣1005. K 次取反后最大化的数组和 思路注意事项 思路一建立小根堆每次修改堆顶即最小值。 思路二贪心条件排序 纯代码1 class Solution { public:int largestSumAfterKNegations(vectorint nums, int k) {priority_queueint, vectorint, greaterint q;for (int i 0; i nums.size() ; i ) q.push(nums[i]);int ans 0;for (int i 0 ;i k; i ){int t - q.top();q.pop();q.push(t);}while(!q.empty()) ans q.top(), q.pop();return ans;} };题解1加注释 class Solution { public:int largestSumAfterKNegations(vectorint nums, int k) {// 定义一个最小堆优先队列用于存储数组中的元素priority_queueint, vectorint, greaterint q;// 将数组中的所有元素放入最小堆for (int i 0; i nums.size(); i) q.push(nums[i]);// ans 用于存储最终的累加和int ans 0;// 进行 k 次取反操作for (int i 0; i k; i) {// 取出堆顶元素当前最小的元素int t -q.top();// 将堆顶元素弹出q.pop();// 将取反后的元素重新放入堆中q.push(t);}// 计算堆中所有元素的和while (!q.empty()) {ans q.top(); // 取出堆顶元素并累加到 ansq.pop(); // 弹出堆顶元素}// 返回最终的累加和return ans;} };纯代码2 class Solution { static bool cmp (int a, int b) {return abs(a) abs(b); } public:int largestSumAfterKNegations(vectorint nums, int k) {sort (nums.begin(), nums.end(), cmp);int ans 0;for (int i 0; i nums.size() k 0; i )if (nums[i] 0) nums[i] - nums[i], k --;if (k % 2 1) nums[nums.size() - 1] * -1;for (auto i : nums) ans i;return ans;} };题解2加注释 #include vector #include algorithm #include cmathclass Solution {// 自定义比较函数用于 std::sort 排序// 该函数的作用是按照绝对值从大到小对元素进行排序static bool cmp (int a, int b){// 返回绝对值大的元素排在前面return abs(a) abs(b);} public:// 该函数用于计算经过 k 次取反操作后数组元素的最大和int largestSumAfterKNegations(vectorint nums, int k) {// 使用自定义的 cmp 函数对数组进行排序使得绝对值大的元素排在前面sort (nums.begin(), nums.end(), cmp);// 用于存储最终的数组元素和int ans 0;// 遍历数组优先将绝对值大的负数取反for (int i 0; i nums.size() k 0; i ) {// 如果当前元素是负数将其取反并将 k 减 1if (nums[i] 0) {nums[i] - nums[i];k --;}}// 如果 k 还有剩余且为奇数说明还需要进行一次取反操作// 此时对绝对值最小的元素进行取反因为前面已经按绝对值从大到小排序所以最后一个元素绝对值最小if (k % 2 1) {nums[nums.size() - 1] * -1;}// 遍历数组计算所有元素的和for (auto i : nums) {ans i;}// 返回最终的和return ans;} };
http://www.hkea.cn/news/14453984/

相关文章:

  • 沈阳网站建设那家好云南省城乡住房建设厅网站
  • 青岛物流公司网站建设连云港优化推广
  • 做seo时网站更新的目的专业做公墓 陵园的网站
  • 抚顺网站网站建设浦江县建设局网站
  • 佛山网页网站制作高柏企业管理咨询有限公司
  • 抖音平台建站工具北京网站定制建设
  • 录像网站怎么做ppt模板包含哪些内容
  • 广州网站制作开发公司设计网站可能遇到的问题
  • 国内建网站公司深圳兼职做网站
  • 做网赌需要在哪些网站投广告网站开发职业生涯规划范文
  • 美德的网站建设网站建设捌金手指花总二九
  • 有哪些做外贸的网站天津专业做网站公司
  • 青岛公司网站设计自助建站系统源码 资源网
  • 济南槐荫网站开发公司教学网站在线自测功能怎么做
  • 自己怎么开发网站百度搜国外服务器Wordpress
  • 民非企业网站建设费怎么记账php免费网站系统
  • 深圳建设银行网站首页网络营销是什么意思啊
  • 建材 东莞网站建设个人做淘宝客网站好做吗
  • 网站规划与建设 ppt大连百度推广公司
  • 网站如何做中英文效果合肥 网站建设公司哪家好
  • 焦作网站建设服务个人网站需求分析
  • 手机网站建设要多少钱广告信息发布平台
  • 移动端比较好的网站承接电商网站建设
  • 一个专门做特卖的网站网络公司推广
  • vs平台做网站上海做建材上什么网站好
  • 关于网站建设投稿做网站映射tcp
  • 设计素材网站千图网网站开发网上教学
  • 怎样做网站卖自己的产品鲜花网站建设策划方案
  • 企业网站建设 会计分录微信客户管理系统
  • 网站实施过程网络工程师可以从事什么工作