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

力扣OJ(3300+)

3314. 构造最小位运算数组 I

给你一个长度为 n 的

质数

数组 nums 。你的任务是返回一个长度为 n 的数组 ans ,对于每个下标 i ,以下 条件 均成立:

  • ans[i] OR (ans[i] + 1) == nums[i]

除此以外,你需要 最小化 结果数组里每一个 ans[i] 。

如果没法找到符合 条件 的 ans[i] ,那么 ans[i] = -1 。

质数 指的是一个大于 1 的自然数,且它只有 1 和自己两个因数。

示例 1:

输入:nums = [2,3,5,7]

输出:[-1,1,4,3]

解释:

  • 对于 i = 0 ,不存在 ans[0] 满足 ans[0] OR (ans[0] + 1) = 2 ,所以 ans[0] = -1 。
  • 对于 i = 1 ,满足 ans[1] OR (ans[1] + 1) = 3 的最小 ans[1] 为 1 ,因为 1 OR (1 + 1) = 3 。
  • 对于 i = 2 ,满足 ans[2] OR (ans[2] + 1) = 5 的最小 ans[2] 为 4 ,因为 4 OR (4 + 1) = 5 。
  • 对于 i = 3 ,满足 ans[3] OR (ans[3] + 1) = 7 的最小 ans[3] 为 3 ,因为 3 OR (3 + 1) = 7 。

示例 2:

输入:nums = [11,13,31]

输出:[9,12,15]

解释:

  • 对于 i = 0 ,满足 ans[0] OR (ans[0] + 1) = 11 的最小 ans[0] 为 9 ,因为 9 OR (9 + 1) = 11 。
  • 对于 i = 1 ,满足 ans[1] OR (ans[1] + 1) = 13 的最小 ans[1] 为 12 ,因为 12 OR (12 + 1) = 13 。
  • 对于 i = 2 ,满足 ans[2] OR (ans[2] + 1) = 31 的最小 ans[2] 为 15 ,因为 15 OR (15 + 1) = 31 。

提示:

  • 1 <= nums.length <= 100
  • 2 <= nums[i] <= 1000
  • nums[i] 是一个质数。
class Solution {
public:
	vector<int> minBitwiseArray(vector<int>& nums) {
		vector<int> ans;
		for (auto x : nums)ans.push_back(f(x));
		return ans;
	}
	int f(int x)
	{
		if (x == 2)return -1;
		int a = 1;
		while (a&x)a <<= 1;
		a >>= 1;
		return a ^ x;
	}
};


http://www.kler.cn/a/520011.html

相关文章:

  • 【橘子Kibana】Kibana的分析能力Analytics简易分析
  • 一文讲解Java中的接口和抽象类
  • 嵌入式实时操作系统
  • 速通 AI+Web3 开发技能: 免费课程+前沿洞察
  • #HarmonyOS篇:build-profile.json5里面配置productsoh-package.json5里面dependencies依赖引入
  • MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)
  • Java设计模式 十八 状态模式 (State Pattern)
  • Linux/C高级(精讲)----进程、文件、shell
  • 菜鸟BUG之常见异常(二)
  • 全球AI模型百科全书,亚马逊云科技Bedrock上的100多款AI模型
  • 后端SpringBoot学习项目-用户管理-增删改查-service层
  • Centos7系统php8编译安装fileinfo扩展教程整理
  • 78,【2】BUUCTF WEB .[安洵杯 2019]不是文件
  • Spring集成Redis|通用Redis工具类
  • 81,【5】BUUCTF WEB [b01lers2020]Life on Mars
  • Leetcode刷题-滑动窗口
  • Hadoop实战-电商离线数仓学习笔记4.0
  • 基于马尔可夫链和多属性决策方法的物联网生态系统信任评分预测与管理
  • 【Git版本控制器--3】Git的远程操作
  • 【Linux】OS、进程PCB、状态、进程的切换和调度,深入理解虚拟地址空间
  • 《P1208 [USACO1.3] 混合牛奶 Mixing Milk》
  • ADC和DMA原理
  • 如何优化深度学习模型来提高错别字检测准确率?
  • 如何在Python中进行数据分析?
  • JavaSE【学习笔记】
  • linux日志排查相关命令