【算法题】2897. 对数组执行操作使平方和最大

题目:

给你一个下标从 0 开始的整数数组 nums 和一个 正 整数 k 。

你可以对数组执行以下操作 任意次 :

选择两个互不相同的下标 i 和 j ,同时 将 nums[i] 更新为 (nums[i] AND nums[j]) 且将 nums[j] 更新为 (nums[i] OR nums[j]) ,OR 表示按位 或 运算,AND 表示按位 与 运算。
你需要从最终的数组里选择 k 个元素,并计算它们的 平方 之和。

请你返回你可以得到的 最大 平方和。

由于答案可能会很大,将答案对 109 + 7 取余 后返回。

示例 1:

输入:nums = [2,6,5,8], k = 2
输出:261
解释:我们可以对数组执行以下操作:

  • 选择 i = 0 和 j = 3 ,同时将 nums[0] 变为 (2 AND 8) = 0 且 nums[3] 变为 (2 OR 8) = 10 ,结果数组为 nums = [0,6,5,10] 。
  • 选择 i = 2 和 j = 3 ,同时将 nums[2] 变为 (5 AND 10) = 0 且 nums[3] 变为 (5 OR 10) = 15 ,结果数组为 nums = [0,6,0,15] 。
    从最终数组里选择元素 15 和 6 ,平方和为 152 + 62 = 261 。
    261 是可以得到的最大结果。
    示例 2:

输入:nums = [4,5,4,7], k = 3
输出:90
解释:不需要执行任何操作。
选择元素 7 ,5 和 4 ,平方和为 72 + 52 + 42 = 90 。
90 是可以得到的最大结果。

提示:

1 <= k <= nums.length <= 10^5
1 <= nums[i] <= 10^9

java代码:

public class Solution {public int maxSum(List<Integer> nums, int k) {final long MOD = 1_000_000_007;int[] cnt = new int[30];for (int x : nums) {for (int i = 0; i < 30; i++) {cnt[i] += (x >> i) & 1;}}long ans = 0;while (k-- > 0) {int x = 0;for (int i = 0; i < 30; i++) {if (cnt[i] > 0) {cnt[i]--;x |= 1 << i;}}ans = (ans + (long) x * x) % MOD;}return (int) ans;}
}

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

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

相关文章

2023-10-10 mysql-{mysql_create_db}-失败后回滚-记录

摘要: 2023-10-10 mysql-{mysql_create_db}-失败后回滚-记录 mysql_create_db 完整函数代码: /**Create a database@param thd Thread handler@param db Name of database to createFunction assumes that this is already validated.@param create_info Database create op…

小程序 词云图 echarts-for-weixin-wordcloud

GitHub - clydee-geng/echarts-for-weixin-wordcloud: echarts词云微信小程序版 这个是适配与小程序版的词云图&#xff0c;之前有找到ucharts来代替&#xff0c;但是ucharts的词云图功能有两个缺点&#xff1a;1.无法根据值的大小显示词云图的大小&#xff1b;2.显示的顺序是…

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文档&#xff1a; A New Model for Resilient Distribution Systems by Microgrids Formation&#xff1b; 主动配电网故障恢复的重构与孤岛划分统一模型&#xff1b; 同时考虑孤岛与重构的配电网故障…

VR全景展示带来旅游新体验,助力旅游业发展!

引言&#xff1a; VR&#xff08;虚拟现实&#xff09;技术正以惊人的速度改变着各行各业&#xff0c;在旅游业中&#xff0c;VR全景展示也展现了其惊人的影响力&#xff0c;为景区带来了全新的宣传机会和游客体验。 一&#xff0e;什么是VR全景展示&#xff1f; VR全景展示是…

Leetcode 289. Game of Life

Problem According to Wikipedia’s article: “The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.” The board is made up of an m x n grid of cells, where each cell has an in…

java过滤非中英文的特殊字符,四字节表情字符

过滤非中英文的特殊字符 /*** 过滤特殊字符* param str str* return String*/ public static String filterStr(String str) {if (StringUtils.isBlank(str)) {return str;}String regEx "[~!#$%^&*()|{}:;,\\[\\].<>/?~&#xff01;#&#xffe5;%……&…

Python的就业前景及薪资收入

作为近几年来特别受欢迎的编程语言之一&#xff0c;Python一直以来被众多行业内人士寄予厚望&#xff0c;今后有可能替代老牌霸主Java&#xff0c;成为新一代编程语言榜首。 与其他语言相比&#xff0c;Python中的语言语法特别简单&#xff0c;并且代码具有可读性&#xff0c;多…

5.1 C/C++ 使用文件与指针

C/C语言是一种通用的编程语言&#xff0c;具有高效、灵活和可移植等特点。C语言主要用于系统编程&#xff0c;如操作系统、编译器、数据库等&#xff1b;C语言是C语言的扩展&#xff0c;增加了面向对象编程的特性&#xff0c;适用于大型软件系统、图形用户界面、嵌入式系统等。…

ubuntu安装Miniconda并举例使用

更新系统包 sudo apt update sudo apt upgrade官网下载Miniconda&#xff0c;最好是实体机下载后放进虚拟机&#xff0c;方法可以参考Xftp 7连接服务器或者本地虚拟机文章 https://docs.conda.io/en/latest/miniconda.html#linux-installers 进入安装目录执行&#xff0c;右键…

Maven 引入外部依赖

如果我们需要引入第三方库文件到项目&#xff0c;该怎么操作呢&#xff1f; pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项&#xff0c;我们一般是先在 src 文件夹下添加 lib 文件夹&#xff0c;然后将你工程需要的 jar 文件复制到 …

[MT8766][Android12] 使用谷歌LPA实现ESIM功能的流程

文章目录 开发平台基本信息问题描述实现流程 其他问题 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 客户需要我们设备支持ESIM功能&#xff0c;5月份的时候在高通6125上面预研过ESIM功能&#xff0c;当时ESIM供应商是Links field&#xff0c…

OpenCV4(C++)—— 视频和摄像头的加载、显示与保存

文章目录 一、加载与显示二、保存 一、加载与显示 视频或摄像头的加载是使用 cv::VideoCapture 类。&#xff08;这个类和 ifstream 类比较相似&#xff0c;视频或摄像头的加载和文本文件操作是大致相同。主要步骤&#xff1a;&#xff08;1&#xff09;加载&#xff08;打开&a…

Springboot接收http参数总结(最简单易懂)

1. 前端能携带请求参数的地方 http请求一半前端请求参数放在三个地方&#xff1a;请求头&#xff0c;请求查询参数&#xff08;Query String&#xff09;&#xff0c;请求体。 请求体需要获取HttpServletRequest对象才能获取。 2. 请求体常见格式 而请求体中可以存放多种格式…

深度学习-房价预测案例

1. 实现几个函数方便下载数据 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)): #save"""下载…

架构师选择题--信息安全技术(系统安全)

架构师选择题--信息安全技术 真题 很少超纲 真题 b c d d b a d a d a Kergberos和数字证书是类似的协议 向TGS申请票据 C PGP&#xff1a;安全电子邮件传输协议 b c b 使用发送方是私钥加密摘要–发送方不可抵赖 加密&#xff1a;保密性 信息摘要&#xff1a;完整性 数…

闭包(C#)

通常来讲&#xff0c;大家一听到闭包&#xff0c;应该首先会想到JavaScript中的闭包&#xff0c;而不会想到C#中的闭包&#xff0c;但是C#中也是有闭包的&#xff0c;下面就让我来为大家仔细讲解讲解。 在C#中&#xff0c;我们通常知道变量作用域有三种&#xff1a;1、是属于类…

docker compose和consul(服务注册与发现)

一、Docker-compose 简介 Docker-Compose项目是基于Python开发的Docker官方开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&a…

登录页面怎么做渗透

1.用万能密码登录&#xff0c;看是否能登录成功 ‘ or 11# 2.注入漏洞 用burp抓包放在sqlmap里面跑&#xff0c;看是否有注入 3.查看是否有说明文档找文件下载漏洞 一般的链接形式 download.php?path download.php?filename down.php?file data.php?file 包含的参数 &…

Mabatis-puls强于Mybatis的地方

Mabatis-puls与Mybatis都是优秀的Java持久化框架&#xff0c;但是Mabatis-puls相较于Mybatis有以下几个方面的优势&#xff1a; 性能更优&#xff1a;Mabatis-puls采用了Javassist技术&#xff0c;使得它在运行时比Mybatis更快速&#xff0c;尤其是在执行大量SQL的情况下&#…

TensorFlow入门(二十一、softmax算法与损失函数)

在实际使用softmax计算loss时,有一些关键地方与具体用法需要注意: 交叉熵是十分常用的,且在TensorFlow中被封装成了多个版本。多版本中,有的公式里直接带了交叉熵,有的需要自己单独手写公式求出。如果区分不清楚,在构建模型时,一旦出现问题将很难分析是模型的问题还是交叉熵的使…