postgresql 遍历字符串数组_每日一道编程题(348):1005.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. 1 <= A.length <= 10000

  2. 1 <= K <= 10000

  3. -100 <= A[i] <= 100

f06342419df4e88e5fe344873d756143.gif
解决方法:

(1)算法的基本思想:

算法一:

只要K未减为0,每次都找到数组的最小值,将其取反,最后求和。

算法二:

对数组从大至小排序,遍历数组。

如果当前数组元素大于0,则加至res

如果当前数组元素小于0,

        K大于0,则取反,加至res中

        K小于等于0,直接加至res中

遍历完数组后对K进行判断,如果K为奇数,则res需要减去最后一个元素(最小值)的2倍。

(注:比如4,3,2数组,K = 1,res = 4+3+2,如果K为偶数,我们可以将2取反变成-2,再取反变成2,但是如果K为奇数,我们总要将数组中的其中一个数取反,而在遍历数组的过程中,我们遇到正的就加起来了,并未取反,所以最后需要减掉最小值的2倍)

(2)代码实现:

class Solution
{
public:
    int largestSumAfterKNegations(vector<int> &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(vector<int> &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老师出题有一个规律,在出题之前,他会随机写下一个字符串,只要在这个字符串中能按顺序找到E,A,S,Y四个字母,他出题就会比较简单。你拿到了字符串,请你告诉别人题目难不难吧。

输入格式:

输入的数据有多组,每组占一行,由一个字符串组成(字符串的长度不超过1000)。

输出格式:

对于每组输入数据,输出一行,对应一个要求的答案(题目简单就输出easy,难就输出difficult)

输入样例:

eAsy
SEoAtSNY

输出样例:

difficult
easy
491a0b5a62d6f25816ed8056f7b9150a.png

c7388afbfaeb7c206cc9df85f39d6090.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7安装sql cent os server_CentOS7 安装并使用SQL Server

CentOS7 安装并使用SQL ServerLinux 上的 SQL Server 安装指南笔者基于CentOS7进行安装操作下载 Microsoft SQL Server Red Hat 存储库配置文件sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server.repo运行以下命令&…

python读取mysql数据_Selenium(Python) ddt读取MySQL数据驱动

import unittest from time import sleep from ddt import ddt, data from pymysql import connect from selenium import webdriver def getMySQLTestData(): # 查询数据库的方法 db connect(host"localhost", user"root", password"123456", …

签字后被开除_员工虚假报销公司可以开除吗?

大家好&#xff0c;我是法小明。今天继续和大家聊聊劳动法那些事&#xff0c;很多企业都会有报销制度&#xff0c;但制度难免会有漏洞&#xff0c;如果劳动者钻空子的话公司可以解除劳动合同吗&#xff1f;我们一起看看下面这个例子&#xff1a;小案例陈某系某公司员工&#xf…

python创建sqlite3数据库_树莓派使用 Python + SQLite 建立温度数据库

相比 MySQL 而言&#xff0c;SQLite 更为轻便、易于维护和部署。本文使用Python向SQLite数据库中插入树莓派温度数据&#xff0c;SQLite数据库中包含一张只包含三个字段的记录表——参数名称&#xff0c;时间和温度值。本文重点解释Python操作SQlite的具体方法&#xff0c;由于…

论文笔记:推荐系统去偏(Debiased Recommendation)研究综述

1 推荐系统的偏差 出现偏差的原因&#xff1a;用户行为数据是观察所得(Observational)而不是实验所得(Experimental)&#xff0c;因此会存在各种偏差&#xff0c;如用户对物品的选择偏差、系统对物品的曝光偏差等&#xff1b;偏差带来的问题&#xff1a;不考虑偏差&#xff0c…

不良事件总结怎么写_个人年终工作总结怎么写?

又到了年终&#xff0c;今年注定是不平凡的一年&#xff0c;大家一经历了历风风雨雨&#xff0c;突破重重艰难险阻&#xff0c;一起复工复产。今年&#xff0c;每个人的工作经历都是一部励志经典。那么年终总结怎样写才能更有说服力&#xff0c;更有深度呢&#xff1f;年终总结…

python爬取b站评论_python高效之爬了B站再爬微博

全文简介 本文是用Python爬取微博移动端的数据。可以看一下Robots协议。另外尽量不要爬取太快。如果你毫无节制的去爬取别人数据&#xff0c;别人网站当然会反爬越来越严厉。所以&#xff0c;不要难为别人&#xff0c;到最后其实是在难为你自己。至于为什么不爬PC端&#xff0c…

c++ 内存管理_Python Bindings - 从 Python 调用 C/C++

python 最被人诟病的问题是什么&#xff1f; 慢&#xff0c;这是被人诟病最多的问题&#xff0c;很少人知道具体原因&#xff0c;极少人愿意去深入了解并找到原因&#xff0c;更极少的人愿意付出时间去解决这个问题&#xff0c;很多人都是停留在抱怨吐槽阶段&#xff0c;知乎上…

python安装idle_(1)Python 安装使用IDLE

安装Windows x86 web-based installer 在线安装 Windows x86 executable installer 离线安装 x86-64 64位软件 配置环境变量path下添加 python安装路径 查看版本号&#xff1a;运行Python 输入 help()一、IDLE介绍 IDLE是Python自带简单的集成开发环境&#xff0c;安装python的…

S-MBRec学习笔记

1 动机 传统推荐系统一般只考虑购买行为&#xff0c;忽略了放入购物车、浏览行为&#xff1b;本文将购买、放入购物车、浏览三个行为一起考虑&#xff1b;考虑购买和放入购物车行为的差异&#xff0c;进行对比学习&#xff1b;考虑购买和浏览行为的差异&#xff0c;进行对比学…

小米5点位图_最新!地铁5号线、6号线部分车站文化墙设计出炉!你选哪个?

情忆汉长安、惊鸿游龙、星辰大海……这些绝美的名字属于地铁文化墙近日西安地铁5号线和6号线一期工程的6座车站文化墙设计方案新鲜出炉邀请广大市民乘客对文化墙设计进行投票并提出宝贵建议西安地铁“一站一景”一直以来&#xff0c;西安地铁因其“一站一景”的独立logo设计、精…

python import io_Python——python3的io读写

前言&#xff1a;python2中的StringIO经常被用来作字符串的缓存&#xff0c;尤其是处理图片验证码的处理&#xff0c;近期牵扯tornado项目升级python3&#xff0c;简单学习了下python3中的io操作&#xff1b;因为StringIO的一些接口和文件操作是一致的&#xff0c;也就是说同样…

python 编辑距离_最小编辑距离python

1 什么是编辑距离 在计算文本的相似性时&#xff0c;经常会用到编辑距离&#xff08;Levenshtein距离&#xff09;&#xff0c;其指两个字符串之间&#xff0c;由一个字符串转成另一个所需的最少编辑操作次数。在字符串形式上来说&#xff0c;编辑距离越小&#xff0c;那么两个…

php 清空一个数组_php如何删除一个数组

php如何删除一个数组2020-07-10 01:16:35php删除一个数组的方法&#xff1a;1、使用unset函数删除一个数组元素&#xff0c;且保持原有索引不变&#xff1b;2、使用“array_splice”函数删除一个数组元素&#xff0c;不保持索引&#xff1b;3、使用“array_diff”函数&#xff…

asp多表查询并显示_MySQL多表查询与事务

回顾1. DQL单表高级查询条件 where比较运算逻辑运算符in关键字between关键字if null关键字like关键字% 多个任意字符_ 单个任意字符排序 order byascdesc聚合函数count(*) 统计行&#xff0c;包括null值maxminavgsum分组 group by 分组字段 having 分组后条件过滤分页 limit 开…

pyqt按钮关闭窗口_PyQt5按钮单击事件,退出程序

1.注意项&#xff1a;当使用QPushButton.clicked.connect(lambda:self.信号槽方法)。connect方法传参数时&#xff0c;需要加上“lambda:”2.步骤&#xff1a;添加一个按钮 self.button1 QPushButton(按钮上的文本)。创建水平布局对象QHBoxLayout&#xff0c;并使用setWidget方…

Bias and Debias in Recommender System: A Survey and Future Directions学习笔记

1 引言 2006-2020发表的有关推荐系统去偏的论文统计&#xff1a; 2 推荐系统的偏差 偏差发生在推荐系统的不同阶段&#xff1a; 用户交互到生成数据的阶段&#xff1a; – 选择偏差&#xff1a; – 一致性偏差&#xff08;从众偏差&#xff09;&#xff1a; – 曝光偏差&a…

卡扇区数据教程_分享一款硬盘分区和数据恢复软件

最近有朋友留言&#xff0c;自己的硬盘被格式化了&#xff0c;没法恢复。今天给大家介绍一款解决硬盘恢复软件--DiskGenius&#xff0c;文末附下载地址&#xff0c;觉得有用点个在看吧。DiskGenius是一款功能非常强大的硬盘分区及数据恢复软件&#xff0c;算法精湛、功能强大&a…

名图1.8智能隐藏功能_7年后再度回归 全新一代名图“大”不同_搜狐汽车

本文车型速览除了文章作者的主观观点外&#xff0c;我们正尝试基于全网可查的客观数据&#xff0c;为您提供中立、客观的参考依据&#xff1a;本文部分车型速览&#xff1a;畅销车型质量排行top10展开微信扫码&#xff0c;直接一次看完附近所有城市低价(附近城市均有经销商可售…