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

孤单数算法

1.背景

腾讯终面:孤单的QQ号码怎么找?

问题一:有n个QQ号码,除1个孤单的QQ号码外,其余的QQ号码都是成双成对的,求这个孤单的QQ号码,要求:时间复杂度为O(n), 空间复杂度为O(1).

问题二:有n个QQ号码,除2个孤单的QQ号码外,其余的QQ号码都是成双成对的,求这2个孤单的QQ号码,要求:时间复杂度为O(n), 空间复杂度为O(1).

问题一求解方案:

方法一:所有数据放在数组中,下标标识qq号,值等于出现次数,然后遍历。

方法二:所有数字相减

方法三:异或方案

问题二求解方案:

基于问题方法三的思路,出现一对的的数字二进制编码是相同的,两个孤单数可以分成两组,数字转换成二进制之后,最后一位根据0 和1 分组,然后分别异或得到两个不同的值。

2.异或java实现

package test;import java.util.ArrayList;public class AloneNums {public static void main(String[] args) {aloneNums();aloneNums2();}// 一个孤单数static void aloneNums(){int[] a ={520, 216, 216, 520, 111};int  res=0;//System.out.println(a);for(int i : a) {res^=i;}System.out.println(res);}// 两个孤单数static void aloneNums2(){int[] a ={520, 216, 216, 520, 111,734};class Tmp {int a;String astr;void seta(int a ){ this.a = a;}void setastr(String astr ){ this.astr = astr;}};ArrayList<Tmp> res = new ArrayList<>();int alone1=0,alone2=0 ;for(int i : a) {String binaryNum = Integer.toBinaryString(i);Tmp t = new Tmp();t.seta(i);t.setastr(binaryNum);res.add(t);}for(Tmp i : res) {String str = i.astr;// 字符串最后一位  str.substring(str.length()-1)// 1 和 0 分类,然后分别异或if(str.substring(str.length()-1).equals("1")){alone1^=i.a;}elsealone2^=i.a;}System.out.println(alone1);System.out.println(alone2);}
}

3.遗留问题

    n个孤单数如何寻找?

相关文章:

孤单数算法

1.背景 腾讯终面&#xff1a;孤单的QQ号码怎么找&#xff1f; 问题一&#xff1a;有n个QQ号码&#xff0c;除1个孤单的QQ号码外&#xff0c;其余的QQ号码都是成双成对的&#xff0c;求这个孤单的QQ号码&#xff0c;要求&#xff1a;时间复杂度为O(n), 空间复杂度为O(1). 问题…...

triangulate_object_model_3d算子总结

目录 1.去掉固定方向的点云干扰 2.增加八叉树深度,实现更高细节级别的三角测量 3.腐蚀和膨胀,得到更平滑的点云 1.去掉固定方向的点云干扰 例程:triangulate_object_model_3d_xyz_mapping.hdev...

ZincSearch Java 客户端教程

ZincSearch Zinc 简单、强大&#xff0c;不了解的同学可以参见我之前的博客。今天我们这里谈谈 Java 环境如何集成 Zinc 客户端&#xff0c;跟如何使用的。 安装 Zinc 到 Github 的官方 Releases 下载&#xff1a; 我的是 Windows 开发环境&#xff0c;下载 zincsearch_0.4…...

数据结构(一)(嵌入式学习)

数据结构干货总结&#xff08;一&#xff09;基础线性表的顺序表示线性表的链式表示单链表双链表循环链表循环单链表循环双链表栈顺序存储链式存储队列队列的定义队列的常见基本操作队列的顺序存储结构顺序队列循环队列队列的链式存储结构树概念二叉树二叉树的创建基础 数据&a…...

合成复用原则-快速理解

什么是合成/聚合复用原则&#xff1f; 合成/聚合复用原则是在一个新的对象里面使用一些已有的对象&#xff0c;使之成为新对象的一部分&#xff1b;新的对象通过向这些对象的委派达到复用已有功能的目的。 简述为&#xff1a;要尽量使用合成/聚合&#xff0c;尽量不要使用继承…...

Scala04 方法与函数

Scala04 方法与函数 Scala 中的也有方法和函数的概念。 Scala中的 方法 是类的一部分。 Scala中的 函数 是一个对象&#xff0c;可以赋值给变量。 在类中定义的函数就是方法 4.1 方法 Scala 中方法 与 Java 中类似&#xff0c;是组成类的一部分 4.1.1 语法结构 格式&#x…...

XJTUSE专业课与实验指南(已经开源)

文章目录XJTUSE专业课与实验指南大一小学期大二上课程实验大二下课程实验大二小学期大三上课程实验大三下课程实验XJTUSE专业课与实验指南 github地址&#xff1a;https://github.com/yijunquan-afk/XJTUSE-NOTES.git &#x1f4c4;写在前面 1️⃣ 本篇文章仅供参考&#xff0…...

Spring面试专题

讲师&#xff1a;邓澎波 Spring面试专题 1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 1.1 Spring的发展历程 先介绍Spring是怎么来的&#xff0c;发展中有哪些核心的节点&#xff0c;当前的最新版本是什么等 通过上图可以比较清晰的看到Spring的各个时间版本…...

【truncate、delete和drop的6大区别!】

在MySQL中&#xff0c;truncate、delete和drop是三个常用的命令&#xff0c;它们可以用于删除表或表中的数据&#xff0c;下面是它们的六大区别&#xff1a; 语法不同&#xff1a; truncate和delete是SQL语句&#xff0c;drop是DDL&#xff08;数据定义语言&#xff09;语句。…...

如何入门Vue:掌握Vue的核心概念和基本用法

Vue是一种流行的JavaScript框架&#xff0c;它可以让开发者更容易地构建响应式的用户界面。Vue的设计理念是简单易懂&#xff0c;它的核心库只关注视图层&#xff0c;可以与其它库或现有项目很好地结合。在本文中&#xff0c;我将介绍Vue的基础概念和如何开始使用Vue。Vue的基本…...

APM飞控使用动捕等外部定位

本文初次写于2023.03.03&#xff0c;pixhawk飞控应该是刷写了ArduPilot 4.1以上的版本。 机载计算机通过WIFI和vrpn_ros_client获取动捕系统&#xff08;vicon或者nokov&#xff09;的无人机定位数据&#xff08;x&#xff0c;y&#xff0c;z四元数&#xff09;&#xff0c;然…...

【vulhub漏洞复现】CVE-2013-4547 Nginx 文件名逻辑漏洞

一、漏洞详情影响版本 Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7通过%00截断绕过后缀名的限制&#xff0c;使上传的php内容文件被解析执行。当Nginx得到一个用户请求时&#xff0c;首先对url进行解析&#xff0c;进行正则匹配&#xff0c;如果匹配到以.php后缀结尾的文件名&#x…...

Kubernetes中配置livenessProbe、readinessProbe和startupProbe

livenessProbe、readinessProbe和startupProbe作用kubelet使用livenessProbe&#xff08;存活探针&#xff09;来判断何时重启容器。例如&#xff0c;当程序中产生死锁的时候&#xff0c;程序还在运行&#xff0c;通过livenessProbe可以检测到程序已不能正常提供服务。这种情况…...

冰箱压缩机 方案

压缩机是制冷系统的心脏&#xff0c;它从吸气管吸入低温低压的制冷剂气体&#xff0c;通过电机运转带动活塞对其进行压缩后&#xff0c;向排气管排出高温高压的制冷剂气体&#xff0c;为制冷循环提供动力&#xff0c;从而实现压缩→冷凝→膨胀→蒸发 ( 吸热 ) 的制冷循环。压缩…...

一文带你入门,领略angular风采(上)!!!

话不多说&#xff0c;上代码&#xff01;&#xff01;&#xff01; 一、脚手架创建项目 1.安装脚手架指令 npm install -g angular/cli 2.创建项目 ng new my-app(ng new 项目名) 3.功能选择 4.切换到创建好的项目上 cd my-app 5.安装依赖 npm install 6.运行项目 npm start或…...

SpringMVC 参数绑定(视图传参到控制器)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

Three.js高级应用--利用Three.js+WebGL实现fbx和obj格式模型的自定义加载

通过对webgl和three.js的不断学习与实践&#xff0c;在三维应用场景建设过程中&#xff0c;利用Three.js与webgl配合可以实现大部分三维场景的应用需求&#xff0c;这一篇主要讲述如何利用Three.js加载已有的模型&#xff0c;支持的三维模型格式有.fbx和.obj&#xff0c;同时.o…...

Go struct

每个无名结构体类型的字面形式均由struct关键字开头&#xff0c;后面跟着用一对大括号{}&#xff0c;其中包裹着的一系列字段&#xff08;field&#xff09;声明。 一般来说&#xff0c;每个字段声明由一个字段名和字段类型组成。一个结构体类型的字段数目可以为0。struct {tit…...

Redis多线程模型源码解析

1. 配置启用多线程 默认情况下多线程是默认关闭的&#xff0c;如果想要启动多线程&#xff0c;需要在配置文件中做适当的修改。 修改redis.conf 文件如下 io-threads 4 #启用的 io 线程数量 io-threads-do-reads yes #读请求也使用io线程2 源码解析 进入到Redis的main入口函…...

搭建zabbix4.0监控服务实例

一.Zabbix服务介绍 1.1服务介绍 Zabbix是基于WEB界面的分布式系统监控的开源解决方案&#xff0c;Zabbix能够监控各种网络参数&#xff0c;保证服务器系统安全稳定的运行&#xff0c;并提供灵活的通知机制让SA快速定位并解决存在的各种问题。 1.2 Zabbix优点 Zabbix分布式监…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...