Q5.7 Find the missing number

Oracle 11g R2 在 RHEL 7.9 离线部署:4步配置本地Yum源与5个依赖包手动安装 本文详细介绍了在RHEL 7.9离线环境下部署Oracle 11g R2的完整流程,包括4步配置本地Yum源和5个关键依赖包的手动安装方法。通过图形化界面配置和详细的验证步骤,确保企业级环境中的高效部署,解决依赖包缺失和版本冲突等核心问题。 阅读详情

Q: An array A[1…n] contains all the integers from 0 to n except for one number which is missing. In this problem, we cannot access an entire integer in A with a single operation. The elements of A are represented in binary, and the only operation we can use to access them is “fetch the jth bit of A[i]”, which takes constant time. Write code to find the missing integer. Can you do it in O(n) time?

A:

思路1:通过fetch将A[i]的每一位都可以取出,那么就很容易得到A[i]的值,有了值之后将数组求和,其与n*(n+1)/2 的差值就是丢失的数字。

思路2:思路1的方法很直观,但是效率还不够高。

以n = 13为例:

00000          00100          01000          01100

00001          00101          01001          01101

00010          00110          01010 

---------          00111          01011

可以发现其最低有效位LSB1 有则一定的规律

if n%2 == 1 then count(0s) = count(1s)

if n%2 == 0 then count(0s) = 1 + count(1s)

得到这样一个表格:

 count(0s) = 1 + count(1s)count(0s) =  count(1s)
LSB(v) == 0所以少了一个0,则count(0s) = counti(1s)所以少了一个0,则count(0s) < ounti(1s)
LSB(v) == 1所以少了一个1,则count(0s) > counti(1s)所以少了一个0,则count(0s) > counti(1s)

if LSB(v) == 0, then 去除LSB为1的数据,对余下的数据对下一位的bit位进行判断

if LSB(v) == 1, then 去除LSB为0的数据,对余下的数据对下一位的bit位进行判断.

还是以例子说明,其最后一位count(0s) > count(1s), 由表格知道LSB(v)为1,则去除LSB为0的数据,即如下:

00000          00100          01000          01100

00001          00101          01001          01101

00010          00110          01010 

---------          00111          01011

对余下的数据统计其倒数第二位count(0s)和count(1s), 比较其大小,得到丢失数v的倒数第二位,并进一步删除数据。这样递归下去。

#include <iostream>
#include <vector>
using namespace std;

int fetch(int n, int i) {
	return (n>>i)&1;
}

int getNum(int n) {
	int ret = 0;
	for (int i = 31; i >= 0; i--) {
		ret = (ret<<1)|fetch(n,i);
	}
	return ret;
}

int findMissing1(int n, int a[]) {
	int sum = 0;
	int len = 8*sizeof(int);
	for (int i = n-1; i >= 0; i--) {
		sum += getNum(a[i]);
	}
	for (int i = 1; i <= n; i++) {
		sum -= i;
	}
	return -sum;	
}

int findMissing2(vector<int> &array, int ind) {
	if (ind >= 32) {
		return 0;
	}
	vector<int> zeroBits;
	vector<int> oneBits;
	for (int i = 0; i < array.size(); i++) {
		if (fetch(array[i], ind)==1) {
			oneBits.push_back(array[i]);
		} else {
			zeroBits.push_back(array[i]);
		}
	}
	if (zeroBits.size() <= oneBits.size()) {
		int v = findMissing(zeroBits, ind+1);
		return (v<<1) | 0;
	} else {
		int v = findMissing(oneBits, ind+1);
		return (v<<1) | 1;
	}
}


int main() {
	int a[6] = {0, 4, 5, 6, 1, 2};
	vector<int> b;
	for (int i = 0; i < 6; i++) {
		b.push_back(a[i]);
	}
	cout<<findMissing1(6, a)<<endl;
	cout<<findMissing2(b, 0)<<endl;
	return 0;
}





Drupal 7在CentOS 6虚拟服务器上的兼容部署与故障排查 Drupal 是一款成熟开源内容管理系统,其 7.x 系列是唯一官方支持 CentOS 6 的主版本;CentOS 6 虽已停止维护,但在政企、医疗、教育等内网环境中仍广泛运行于虚拟服务器之上,构成典型的 LAMP(Apache 2.2 + PHP 5.3–5.6 + MySQL 5.1)遗留栈。该环境的核心挑战在于组件兼容性、SELinux 策略约束与安全加固要求之间的张力——例如 PHP 扩展缺失、mod_rewrite 配置失效、MySQL socket 路径被重定向等问题,均非标准文档可覆盖。本文聚 阅读详情

相关推荐

QGroundControl AppImage 部署:解决 libQt5QmlModels.so.5 等 3 类依赖缺失问题

本文详细介绍了在Linux系统上部署QGroundControl AppImage时遇到的libQt5QmlModels.so.5等依赖缺失问题的解决方案。通过系统级安装、手动拷贝库文件和AppImage修补三种方法,帮助开发者彻底解决依赖问题,确保QGroundControl在Ubuntu等Linux系统上的稳定运行。

weixin_30411239的博客 351

[LintCode] Find the Missing Number [三种方法]

Problem Given an array contains N numbers of 0 .. N, find which number doesn't exist in the array. Example Given N = 3 and the array [0, 1, 3], return 2. Note 找第一个缺失的数,可以...

weixin_33845881的博客 724

win10 + Qt5.14.0(mingw73_64) 下的 OpenCV4.5.1源码编译 注意事项

大体的流程 别的博客上有,大体比较类似。这里不进行详细的介绍。 CMake 的版本 不能过高,例如3.19.x 之类的,我这里用的是3.10.x,否则会莫名其妙的失败。(用了最新的CMake导致的编译失败 就浪费了我一天的时间,还真的什么都不能用最新的) 勾选 WITH_QT 勾选 WITH_OPENGL 不勾选 OPENCV_ENABLE_ALLOCATOR_STATSBUILD_opencv_world CMAKE_BUILD_TYPE 选择 Release 勾选OPENCV_ENABLE...

weixin_44313363的博客 2303

lintcode 中等题:find the missing number 寻找缺失的数

题目 寻找缺失的数   给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。 样例 N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。 注意 可以改变序列中数的位置。 挑战 在数组上原地完成,使用O(1)的额外空间和O(N)的时间。 解题 重新定义一个数组存放排序后的数,空间复杂度和时间...

weixin_34315665的博客 489

AI模型选型实战指南:Claude Opus、GPT-5.5与Gemini Flash对比

大语言模型(LLM)选型已从单纯比拼参数转向工程化决策——核心在于平衡推理速度、调用成本、输出可靠性与生态兼容性。随着Claude Opus 4.7、GPT-5.5和Gemini 3.5 Flash成为企业级AI落地的主流选项,开发者亟需一套可量化的场景匹配方法论:在客服高并发场景中,Gemini Flash凭借低首token延迟(120ms)和高吞吐优势显著降本;在法律合同审查等强逻辑推理任务中,Claude Opus的宪法AI机制保障结果一致性;而GPT-5.5则依托Assistants API、函数调

374

GPT-5.5不是升级,是任务主权操作系统

智能代理(Agentic OS)正从概念走向工程现实——它不再被动响应指令,而是主动理解任务意图、协调多工具、闭环交付结果。其核心原理在于‘任务主权’:以终为始重构推理链,动态分层管理超长上下文,并将API调用升维为权限契约与安全沙箱协商。技术价值体现在对模糊需求的纵深拆解(如业务目标+政治语境+隐性约束)、跨工具协同排障(如CORS问题溯源至Nginx配置),以及系统级构建能力(FASTA输入→Docker镜像一键交付)。典型应用场景覆盖SRE故障诊断、生物信息Pipeline搭建、CEO级数据叙事生成等

weixin_34127717的博客 392

[LintCode] Find the Missing Number

Given an array containsNnumbers of 0 ..N, find which number doesn't exist in the array. Example GivenN=3and the array[0, 1, 3], return2. Challenge Do it in-place wit...

290

CentOS 7.6下OpenSSH从7.4p1到9.4p1的编译升级与安全加固实战

SSH(Secure Shell)协议是Linux/Unix系统远程管理的核心安全通道,其实现OpenSSH的版本直接关系到服务器访问控制的安全性。OpenSSH通过加密通信、身份验证和密钥交换机制,保障了数据传输的机密性与完整性。随着安全漏洞的不断披露和加密算法的演进,及时升级OpenSSH成为运维安全基线管理的关键环节,尤其对于已停止主流维护的CentOS 7等旧系统。本次升级实践聚焦于在CentOS 7.6生产环境中,将系统自带的**OpenSSH 7.4p1**手动编译升级至**9.4p1**稳定版

weixin_33785108的博客 570

[LintCode] Find the Missing Number 寻找丢失的数字

  Given an array contains N numbers of 0 .. N, find which number doesn't exist in the array. Example Given N = 3 and the array [0, 1, 3], return 2. Challenge Do it in-place with O(1) extr...

weixin_34191734的博客 216

CentOS 7 离线安装 Autoconf:RPM包与源码编译2种方案对比

本文详细对比了CentOS 7离线安装Autoconf的两种方案:RPM包安装与源码编译。针对Linux服务器环境,分析了两种方法在依赖管理、部署效率和维护成本等方面的优劣,为系统管理员提供清晰的决策指南。特别适合需要离线安装Autoconf的运维场景。

cunfuteng7334的博客 500

NLP实战进阶路线图:7个真实场景项目分层解析

自然语言处理(NLP)是让机器理解、生成人类语言的核心技术,其本质在于将非结构化文本转化为可计算的语义表示。从基础的中文分词、文本分类,到复杂的序列标注、意图识别与模型部署,NLP能力演进遵循‘由规则到学习、由单点到系统、由离线到实时’的技术路径。真实业务中,精度只是门槛,数据噪声、算力限制、领域适配和工程约束才是关键挑战。本文聚焦NLP实战,覆盖电商评论情感分析、政务工单实体抽取、医疗问诊意图识别等典型场景,深度融合中文分词与文本分类两大基础能力,并强调在有限资源下实现高鲁棒性落地——不堆参数,而重设计;

weixin_30745553的博客 410

Ubuntu下解决Qt5.7.0 cannot find -lGL(亲测解决)

很久没用Qt了,这次要做一个协议编辑器,在ubuntu 14.04上安装了最新版本的Qt 5.7.0。界面改用扁平化风格,第一感觉还不错。按默认步骤创建了一个gui程序,编译运行,报了一个错:cannot find -lGL。   作为一个用惯了makefile的程序员,知道是少了库文件,而且名字应该为libGL.a或者libGL.so。到网上搜索一下,发现GL是openGL的缩写,显然是缺

u012677715的博客 4997

解决:Could NOT find KF5 (missing: CoreAddons DBusAddons DocTools XmlGui)

错误描述:环境Ubuntu16.04 CMake配置过程中发现ECM,KF5模块找不到,于是给出解决办法是:请指定这些模块的具体路径, 之前在Windows下编译过一个CMake项目,同样是ECM找不到,不过当时的ECM_DIR却不好使,在Ubuntu下却偏偏就是这个变量,看来,以后缺这种库,末尾加个DIR试试还是可以的。同样,CMAKE_PREFIX_PATH变量设置更是通用,而只要我们仔细观察cmake运行过程,就会发现如下cmake的执行语句,手动执行的时候就是使用的这个变量: 不过......

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 1597

Missing Semester Class1:course overview and introduction of shell

本文总结了MIT Missing Semester课程第一课关于Shell的基础知识。主要内容包括: Shell环境分类:Linux默认Bash,macOS新版用Zsh,Windows原生PowerShell(建议安装WSL学习) 基础Shell命令详解: date(时间查看) echo(内容输出) man(手册查询) cd(目录切换) PATH变量与which命令 ls(文件列表) 文本处理命令: cat(文件读取) sort/uniq(排序去重) head/tail(首尾截取) grep(关键词搜索)

qq_50413603的博客 524

【学长笔记】点亮 STM32F411CEU6 板载 LED —— 入门级教程

本文提供了STM32F411CEU6开发板(Black Pill)点亮LED的完整教程。详细介绍了硬件信息(板载LED连接PC13,低电平有效)、CubeMX配置步骤(GPIO输出模式)、Keil5工程设置及完整代码实现(包含GPIO初始化和系统时钟配置)。教程还涵盖ST-Link下载器连接方法、程序下载步骤(需配合BOOT0按键操作)以及验证程序运行的方法。该教程特别适合STM32初学者,通过简单的LED闪烁示例快速入门STM32开发。

apple_53308981的博客 1323

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1402

[LeetCode(Q41)] First Missing Positive (乱序数组中寻找第一个未出现的正整数)

Q: Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2. Your algorithm should run in O(n) time and uses co

train的专栏 2799

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7317

DeepSeek-Coder-V2本地部署实战:MoE架构与Q4_0量化工程解析

代码大模型正从云端API走向本地化、可嵌入、可调试的开发基础设施。其核心演进逻辑在于:通过MoE(Mixture of Experts)架构实现任务级参数动态路由,在降低计算开销的同时提升代码生成准确性;结合Q4_0等轻量级量化方案,在16GB内存笔记本等主流硬件上达成秒级响应与高可用性。这种‘精准算力调度+终端友好部署’的技术路径,显著区别于传统稠密大模型的暴力堆参范式,为Python自动化脚本编写、Bug修复、遗留系统现代化等真实工程场景提供了离线可控的AI编码能力。DeepSeek-Coder-V2正

weixin_30598225的博客 472

Uniapp+Vue3+Monorepo:如何优化你的前端开发流程(附完整配置代码)

本文详细介绍了如何利用Uniapp+Vue3+Monorepo技术栈优化前端开发流程,提升代码可维护性和团队协作效率。通过Monorepo架构实现依赖管理智能化、代码复用最大化和构建流程统一化,结合完整配置代码和实战指南,帮助开发者快速构建高性能跨端应用。

weixin_29011993的博客 453

告别手动画图!用SUMO的netedit快速搭建高速公路交织区路网(附完整XML文件)

本文详细介绍了如何使用SUMO的netedit工具高效构建高速公路交织区路网,避免手动绘图的低效与错误。通过实战案例和XML文件示例,帮助交通工程专业学生快速掌握复杂道路结构建模技巧,特别解析了spreadType参数设置和速度单位换算等关键操作。

weixin_29085865的博客 261

保姆级教程:为立创梁山派GD32F450ZGT6安装KEIL5.37与AC5编译器(含注册与芯片包)

本文详细介绍了为立创梁山派GD32F450ZGT6开发板安装KEIL5.37与AC5编译器的全流程指南,包括环境规划、软件注册、芯片包安装及编译器配置等关键步骤,帮助开发者快速搭建稳定的嵌入式开发环境。

dingqiongliang0363的博客 469

OpenClaw 自定义 Skill 开发完整指南(最新版)

OpenClaw 中的每个 Skill,本质是一套“能力描述 + 执行逻辑”的组合包,核心特征如下:核心载体:以文件夹为单位,文件夹内必须包含SKILL.md文件(能力描述核心);扩展文件:可选agent.py(Python 执行逻辑)、index.ts(TypeScript 执行逻辑)、(辅助文档/示例资源)等;核心优势:AI 通过阅读 SKILL.md 的自然语言描述理解技能,无需严格遵循代码接口,灵活度极高;

haolove527的专栏 2万+
上一篇: Q5.6 swap odd and even bits
下一篇: Q5.8 DrawHorizontalLine
「已注销」
博客等级 码龄15年 5粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值