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

14自由度汽车动力学模型

多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。

chao189844的博客 1198

ArcMap实战:用栅格计算器搞定16年NDVI趋势分析,附完整F检验流程

本文详细介绍了如何使用ArcMap的栅格计算器进行16年NDVI趋势分析,包括数据预处理、线性趋势计算和F显著性检验的全流程操作。通过实际案例和统计原理解析,帮助GIS从业者掌握植被覆盖变化的分析方法,特别适合生态评估和农业监测应用。

weixin_29251567的博客 252

[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

【OpenCV-Python】图像的载入、显示和输出(imread()、imshow()、waitKey()、namedWindow()、imwrite())

图像的载入:imread()函数 imread()函数可以用来非常便捷地读取文件中的图片到Opencv中。这个函数一般需要两个参数: (1)载入图片的路径名。如果图像文件在工程文件夹下,可以直接用文件名读取,如“cat.jpg”,否则需要输入完整的访问路径,如“D:\\test\\lena.png”。这里还有几个tips: imread函数中,一个点代表省略当前文件夹路径,两个点则代表回...

M&Q的博客 1397

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

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

weixin_30598225的博客 472

使用Kolla部署多节点Rocky版本OpenStack

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh。每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错。

gyc1206的博客 1927

【2025软考高级架构师】基础知识部分——6、软件架构设计

(1)架构是对系统的抽象(2)架构由多个结构组成(3)任何软件都存在架构(4)元素及其行为的集合构成架构的内容(5)架构具有“基础”性(6)架构隐含有“决策”

qq837993702的博客 1万+

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

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

dingqiongliang0363的博客 469

【数据集】GPM IMERG Daily Precipitation Dataset

GPM IMERG Daily Precipitation Dataset

WW、forever的博客 1220
上一篇: 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、付费专栏及课程。

余额充值