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

2023-2-19 刷题情况

修改两个元素的最小分数

题目描述

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

  • nums 的 最小 得分是满足 0 <= i < j < nums.length 的 |nums[i] - nums[j]| 的最小值。
  • nums的 最大 得分是满足 0 <= i < j < nums.length 的 |nums[i] - nums[j]| 的最大值。
  • nums 的分数是 最大 得分与 最小 得分的和。
    我们的目标是最小化 nums 的分数。你 最多 可以修改 nums 中 2 个元素的值。

请你返回修改 nums 中 至多两个 元素的值后,可以得到的 最小分数 。

|x| 表示 x 的绝对值。

样例

样例输入

nums = [1,4,3]
nums = [1,4,7,8,5]

样例输出

0
解释:将 nums[1] 和 nums[2] 的值改为 1 ,nums 变为 [1,1,1] 。|nums[i] - nums[j]| 的值永远为 0 ,所以我们返回 0 + 0 = 0 。

3
解释:
将 nums[0] 和 nums[1] 的值变为 6 ,nums 变为 [6,6,7,8,5] 。
最小得分是 i = 0 且 j = 1 时得到的 |nums[i] - nums[j]| = |6 - 6| = 0 。
最大得分是 i = 3 且 j = 4 时得到的 |nums[i] - nums[j]| = |8 - 5| = 3 。
最大得分与最小得分之和为 3 。这是最优答案。

提示

  • 3<=nums.length<=1053 <= nums.length <= 10^53<=nums.length<=105
  • 1<=nums[i]<=1091 <= nums[i] <= 10^91<=nums[i]<=109

思路

思路题,可以任意改变两个数的值,题中又需要将得分达到最大值,所以区间两个数的最小差值一定为0。而后将数组排序,只需求min(nums[n-1] - nums[2], nums[n-2] - nums[1], nums[n-3] - nums[0]);

代码实现

class Solution {public int minimizeSum(int[] nums) {Arrays.sort(nums);int n = nums.length;return Math.min(Math.min(nums[n-3] - nums[0] , nums[n-2] - nums[1]), nums[n-1] - nums[2]);}
}

最小无法得到的或值

题目描述

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

如果存在一些整数满足 0 <= index1 < index2 < … < indexk < nums.length ,得到 nums[index1] | nums[index2] | … | nums[indexk] = x ,那么我们说 x 是 可表达的 。换言之,如果一个整数能由 nums 的某个子序列的或运算得到,那么它就是可表达的。

请你返回 nums 不可表达的 最小非零整数 。

样例

样例输入

nums = [2,1]
nums = [5,3,2]

样例输出

4
解释:1 和 2 已经在数组中,因为 nums[0] | nums[1] = 2 | 1 = 3 ,所以 3 是可表达的。由于 4 是不可表达的,所以我们返回 4 。

1
解释:1 是最小不可表达的数字。

提示

  • 1<=nums.length<=1051 <= nums.length <= 10^51<=nums.length<=105
  • 1<=nums[i]<=1091 <= nums[i] <= 10^91<=nums[i]<=109

思路

同样还是思维题,因为需要最小nums数组不能表达出的数,那该数的二进制形式只能为1000...格式。又因或运算只会变大或者不变,nums不能表达即表示nums中的所有数都不等于该数。

代码实现

class Solution {public int minImpossibleOR(int[] nums) {for(int i = 0; i <= 30; i++){boolean ok = true;// 此处还可以使用set进行优化,但竞赛的时候没写出来for(int num : nums){if(num ==  (1 << i)){ok = false;break;}}if(ok) return 1 << i;}return -1;}
}
http://www.lryc.cn/news/12754.html

相关文章:

  • LeetCode笔记:Weekly Contest 333
  • 元数据管理 1
  • 统计二进制中比特1的个数
  • 第三方实现跑马灯和手写实现跑马灯
  • React Native Cannot run program “node“问题
  • python基于vue微信小程序 房屋租赁出租系统
  • ThreadPoolExecutor管理异步线程笔记
  • MotoSimEG-VRC教程:动态输送带创建以及示教编程与仿真运行
  • PyTorch 并行训练 DistributedDataParallel完整代码示例
  • Golang实现ttl机制保存内存数据
  • js中数字运算结果与预期不一致的问题和解决方案
  • C++ Primer Plus 学习笔记(一)——基本类型
  • ChatGpt与Google 谁能给出最好的回答
  • 【Redis】一、CentOS64 安装 Redis
  • Redis底层原理(持久化+分布式锁)
  • Spring Cloud Nacos实战(八) - Nacos集群配置
  • 什么是低代码-甲骨文对低代码的定义
  • shell编程之循环语句
  • 神经动力学-第一章-神经动力学基础-神经系统的元素
  • 【力扣-LeetCode】64. 最小路径和 C++题解
  • Mysql数据库事务
  • 【opencv源码解析0.3】调试opencv源码的两种方式
  • Xcode Archives打包上传 / 导出ipa 发布至TestFlight
  • RNN GRU模型 LSTM模型图解笔记
  • 西电_数字信号处理二_学习笔记
  • [ vulhub漏洞复现篇 ] Drupal 远程代码执行漏洞(CVE-2018-7602)
  • MySQL最佳实践
  • Python 之 Matplotlib 散点图、箱线图和词云图
  • SpringCloud(三)Hystrix断路器服务降级、服务熔断、服务监控案例详解
  • 【超好用】自定义的mybatis-plus代码生成器