首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三道【只出现一次数】一文轻松搞定!

我们通过上面的例子了解了异或运算,对应位相异 1,相同时 0,那么某个数跟本身异或,因为对应位都相同所以结果为 0 , 然后异或又满足交换律和结合律。则 ? 题目代码 ?...那么这个题目我们怎么做?我们看一下能不能利用第一题中做法解决。...在这个题目中其他数字出现两次,目标数出现一次,但是这次目标数为两个,我们直接异或运算的话,得到数则为两个目标数异或值,那么我们应该怎么做?...我们应该怎么得到分组位? 我们让 c , d 异或即可,异或运算就是对应位不同时 1 ,异或之后值为 1 其中一位则为我们分组。...那么我们应该怎么借助分组位进行分组? 我们处理 c , d 异或值,可以仅保留异或值分组位,其余位变为 0 ,例如 101 变成 001或 100 为什么要这么做

64510

原创 |《吊打面试官》系列-ArrayList

面试官最后多喝热水,直接触内心防线,居然还有人这么关心,帅丙眼角,又湿了…… ? ArrayList有用过吗?它是一个什么东西?可以用来干嘛?...记得你说到了,他增删很慢,你能说一下ArrayList在增删时候是怎么做么?主要说一下他为啥慢。 诶卧*,这个想一下,大学看有点忘记了,想想。 ?...删除其实跟新增是一样,不过叫是叫删除,但是在代码里面我们发现,他还是在copy一个数组。 为啥是copy数组? ? 继续打个比方,我们现在要删除下面这个数组index5这个位置 ?...那代码他就复制一个index5+1开始到最后数组,然后把它放到index开始位置 ? index5位置就成功被”删除“了其实就是被覆盖了,给了你被删除感觉。...T[] toArray(T[] a) 按适当顺序(第一个到最后一个元素)返回包含此列表中所有元素数组;返回数组运行时类型是指定数组运行时类型。

49330
您找到你想要的搜索结果了吗?
是的
没有找到

ArrayList

面试官最后多喝热水,直接触内心防线,居然还有人这么关心,帅丙眼角,又湿了…… ? ArrayList有用过吗?它是一个什么东西?可以用来干嘛?...记得你说到了,他增删很慢,你能说一下ArrayList在增删时候是怎么做么?主要说一下他为啥慢。 诶卧*,这个想一下,大学看有点忘记了,想想。 ?...删除其实跟新增是一样,不过叫是叫删除,但是在代码里面我们发现,他还是在copy一个数组。 为啥是copy数组? ? 继续打个比方,我们现在要删除下面这个数组index5这个位置 ?...那代码他就复制一个index5+1开始到最后数组,然后把它放到index开始位置 ? index5位置就成功被”删除“了其实就是被覆盖了,给了你被删除感觉。...T[] toArray(T[] a) 按适当顺序(第一个到最后一个元素)返回包含此列表中所有元素数组;返回数组运行时类型是指定数组运行时类型。

73120

【Linux系统编程】Linux调试器——gdb 基本使用

接下来我们就来学习一下,gdb中常用调式操作所涉及命令 2. gdb基本使用 2.1 显示代码 那调式时候,首先我们能看到代码啊 打开调式是这样,那我们想看看代码怎么做?...2.2 设置、删除和查看断点 那我们调式一般要设断点: 如果你设断点直接就运行结束了 r(run):开始调式 设断点直接调式的话就直接运行完了 那如何设断点?...那如果不想删除它,把它设置成禁用,该怎么做?...那在gdb与之对应操作是什么? 首先逐过程: 开始调式,到16行断点就停止了,对应是一个函数调用。 如果想逐过程,直接走到下一句代码?...n/next:逐过程 那逐语句? 我们重新开始调式 然后又停到了第16行 那我现在想进入函数怎么做

21410

程序员不仅要学会百度,更要懂得提问

前些天在学习EasySwoole时候看到了开发文档上关于提问艺术,以下是结合了自己开发过程遇到问题列出了几点建议: 1、遇到问题别慌,且看报错提示,有报错信息进行一系列排查,确定错误范围 2、...生僻/不知名/不公开 一些问题,或许你考虑下是否有一份文档还没有看完 既然搜索引擎都找不到问题,那你问对该项目毫不知情的人有什么用?...既然有开发文档,那你为什么尝试下在开发文档中发现这个问题解决方案?...例如: 当你没看完新手教程,问swoole为什么运行之后改代码要重启 当你没看完面对对象,问为什么use命名空间就会报错 当你连接websocket,问为什么会发起一个http请求 排查问题 在提问之前...(截图一段"xxxxx"自行判断输出错误信息截图代码) 能不能咨询一下(某种语言,某种框架,某种项目 一个大范围概念) 正确提问包含以下几点: 描述准确,准确描述你要实现功能,问题出现之前以及出现之后现象

87320

如何处理前任程序员留下代码

在这篇文章,我们将通过我们可以使用五种技术来确保将对人性理解成为我们优势,现有代码和原作者汲取尽可能多帮助,并使得其他开发人员编写代码最后变得比原来更优秀。...我们对代码意图以及为什么在代码中使用Magic number知道并不多,但是我们可以创建一组测试,已知输入产生已知输出。...在软件方面,这个理论意味着如果开发人员发现代码已经是一团糟,那么人本性会让他弄坏代码本质上说,我们心里想是(即使心理活动没有这么丰富),“既然最后一个人不在乎这代码为什么要在乎?”...或“都是乱糟糟代码,谁知道是谁写。” 但是,这不应该成为我们借口。只要我们接触以前属于其他人代码,那么我们就要对这些代码负责,并且如果它不能有效工作的话,我们担负后果。...这样可以确保我们对代码进行过仔细考虑:它们不是因为疏忽而发出警告,而是我们明确地注意到了警告(如原始类型)。 一旦我们删除或明确地禁止所有警告,那么我们就必须确保代码保持免除警告。

56420

其实吧,LRU也就那么回事。

方案一:数组 ‍如果之前完全没有接触过 LRU 算法,仅仅知道其思路。 第一次听就要求你给一个实现方案,那么数组方案应该是最容易想到。 假设我们有一个定长数组。数组元素都有一个标记。...维护一个有序单链表,越靠近链表头部结点是越早之前访问有一个新数据被访问,我们链表头部开始顺序遍历链表。...按照这个思路,撸一份八九不离十代码出来,问题应该不大吧? 这个方案比数组方案好在哪里觉得就是莫名其妙高级感,就是看起来就比数组高级了一点。 ?...你心里一慌:靠,这题也背过。一想不起来了。 ? 所以,别只顾着背答案,理解。 你想啊,我们是不是涉及到删除元素操作? 那么链表删除元素除了自己本身指针信息,还需要什么东西?...刚刚我们说删除链表节点,需要借助双链表来实现 O(1)。 删除了链表节点,然后? 是不是还忘记了什么东西? 是不是还有一个哈希表忘记操作了? 哈希表是不是也进行对应删除操作?

62410

AndroidTv Home界面实现原理(二)——Leanback 库主页卡位缩放动画源码解析

源码分析 看源码习惯带着目的性地去阅读,这样只要专注于理解跟目的相关代码即可,不用每行代码地去分析,毕竟好多代码目前能力有限,还啃不透。...这就是为什么习惯带着目的去阅读,因为我们可以目的分析,猜测我们需要代码应该在哪里,然后找到我们该哪里阅读,再一步步去分析。 比如我们这次任务,我们该哪里入手阅读源码?...首先,你先了解一下 Leanback 库基本使用,这就是为什么第一篇博客先简单介绍了 Leanback 库使用。...看代码也很容易明白,设置 ItemView 选中状态,并且去运行一个焦点动画,那么卡位缩放动画应该就是在这里实现了。继续看一下是不是。 ?...以后大家在想看源码某个功能是如何实现时,可以参考这种思路来进行分析,一步步去跟进,只找我们目标相关代码,这样可以不至于被整个源码复杂性混乱掉。 最后想再总结一下上面的过程。

1.6K70

MongoDB技术0到1+

活动已规定了选题框架,思索了小会儿,觉得0到1+ 挺切合选题一,即聊聊如何由浅到深地学习MongoDB核心技术。为什么是1+不是1?...本人是专职于database领域接触MongoDB却也不久,但有幸接触到要与内核打交道项目,所以研究了一段时间,也略有所得,所以此篇文章也必然会谈到学习MongoDB我们可以怎么做起。...and so on 一般说来,业务是应该给出这些信息,我们才好判断到底合不合适。毕竟市场上有这么多db,如果每个db都适用于所有场合,那整这么多db干嘛?大一统香嘛。...为什么需要它 简单来看,多个节点共同来做决定时,如果你说你,还怎么决定啊?就像一群人在房间开会,七嘴八舌,就是没统一,最后这会只能白开了。...Mongo怎么做 关于一致性,谈谈当初自己存在已久误解。原来mongo里quorom 不是我们常说那种quorum !

63920

(转)一探前端开发JS调试技巧

那个时候,网页主要运行在以IE6为主浏览器,JS调试功能还非常弱,只能通过内置于Window对象alert方法来调试,那时候看起来应该是这个样子: ?...以Chrome开发者工具为例,我们来看一下JS断点调试基本方法。 Sources断点 首先,测试代码我们通过上图console输出结果可以看出代码应该是正常运行了,但是为什么是应该?...因为函数中加了一个随机数,最终结果是否真的是正确?这是毫无意义猜想,但是假设现在就是要验证一下:函数传入两个数、被加随机数,以及最终总和。那么该怎么操作?...从上图发现,我们在代码中新增了三行console代码,用以打印我们关心数据变量,最终我们控制台(Console面板)输出结果,可以很清楚验证整个计算过程是否正常,进而达到我们题设验证要求。...如上,我们可以看到a、b变量最初值,到中间加上随机值,再到最后计算总和并输出最终结果整个过程,完成题设验证要求不在话下。

2.8K60

苹果,你开发者文档写得烂透了!!!

但在他四年实际使用,他亲眼见证了 Ember 文档“勉强能用”一路发展到“相当完善”。...他表示这种情况完全不合理: 在 Ember 生态系统,我们有一条简单规则,即除非配有说明文档,否则无法提交代码。Rust 也是如此(曾经参与官方策略 rfc 编写工作)。...最后,希望苹果能够其他框架及语言项目身上取取经:没有文档,不算完成,其实就这么简单。 2 网友怎么看 Chris 控诉得到了广大苹果生态下开发者们声援,他们纷纷表示:你不是一个人!...有的给苹果支招,看看友商是怎么做: 看看微软 Xamarin,人家用苹果 API 都比苹果自己用得好。苹果你就是自己上心。...不愿意写文档的人群,又有不少是因为不能结构化地输出自己开发知识。 读文档和写文档,一个输入,一个输出,一个读者,一个作者。想要成为一个好程序员,有一个良好知识结构是极其重要

1K10

面试官甄别项目经验角度,说说如何在简历写项目经验(java后端方向)

一些培训班让学员做项目,在帮助学员提升相关技能方面,或者有些作用,但仅此而已。如果直接在简历商业项目写,甚至还会起到反作用。...2 在项目里,代码review和单元测试,是怎么做?同理,很多培训班项目只考虑功能,不考虑这块。 3 这个项目现在是否上线?...自然,如果在项目里用到了其它好技术,比如用elk收集日志,用zabbix进行压测,这种就属于写白。...3 知道不少网站能提供项目,不要多,就运行通一两个即可,但其中需要包含java全栈技能,因为这些项目有足够多指导文档,调试通过应该不难,这绝对可以算学习项目。...通过本文给出了若干甄别商业项目的方法,大家可以对照比对你简历上商业项目是否会被误杀,本文给出在简历上描述项目的技巧,更经过了不少毕业生实践检验,应该具备足够可操作性,最后希望此文能帮助到大家。

2.3K20

Julia到底哪好在哪,让数学学霸接触2年就定了终生?还传授读者学数学秘诀

天下武功,唯快;新秀出世,求快 2009年一个下午,中国还没有完全北京奥运会亢奋恢复平静。 在世界某个角落里,有四个年轻人。他们正在合租房,默默无语埋头摆弄着手里Matlab。...屋里气氛有些安静,有些单调,有些无聊。 终于,其中一个人按捺不住,一拍桌子站了起来!其余三人停止了手上动作,抬头看着他。 ”沙雕Matlab!”站起来那个人,嘴里挤出这几个字。...但是他开始接触到Julia时候,他义无反顾、全身心投入到Julia怀抱。 所以,“到底是道德沦丧还是人性扭曲”?就让禅师来揭开这层神秘面纱。 谁是Chris Rackauckas?...C:解决数学问题过程吧,看起来仿佛很神奇,但其实是和武侠游戏一样,刚开始跟小伙伴一起打小怪,直到最后征服了大Boss。但因为大家没看到之前过程,只看到打Boss了,就会觉得超厉害。...因为只要有人给我代码里面有$$这样变量,整个程序就是翔。 禅师:写不出代码时候通常怎么做? C:不存在。这么多代码等着写,根本不会出现写不出来情况,只会出现没时间写情况。

1.4K30

DFS-深度优先搜索(Depth First Search)—1

如果不知道深度优先搜索算法,看到这道题可能第一反应可能是使用枚举,那么使用10重循环,并且还要判断10个数字是不是有重复想除非你是个代码狂魔,不然的话你肯定不会去写这个代码。...由此我们可以架构出大致代码: void dfs(int step) { /* * 筛选完最后一个数字返回, *(注意不是9,因为第9位数字是最后一个数字,但是此时还没筛选完第...如果你也想到了这个问题,那么恭喜你,你已经理解了这道题思路,在每一轮筛选结束之后,我们在确实要将选中数字取消标记,这样才能进行下一轮筛选(注意是下一轮不是下一步)。...那么,我们再加上数字取消标记代码: void dfs(int step) { /* * 筛选完最后一个数字返回, *(注意不是9,因为第9位数字是最后一个数字,但是此时还没筛选完第...,对用过数字取消标记用于下一轮筛选 } } } 题目要求我们输出啊,那么数字储存和结果输出在哪里进行到了这一步这些都不难了,下面给出完整代码: #include <iostream

49410

拜托,大厂做项目可不简单!

揭秘一线大厂研发流程 大家好,是鱼皮。 很多未工作过小伙伴都很好奇:企业做项目是怎样流程?尤其是大厂那些百万用户项目,和自己学编程做项目到底有什么区别? 实话说,区别可大了!...产品妹子打开文档,说到:这一期,我们要做这几个需求,下面来详细讲一下,大家一起评估下有没有问题。 需求分析 接下来,产品妹子正在对着屏幕侃侃谈、疯狂输出,旁边开发大哥坐不住了。...技术预研 如今技术发展太快,新技术层出穷,所以鱼皮首先对项目中需要或可能需要用到技术进行了调研。 技术选型 通过调研,鱼皮得到了几个可以满足需求技术,但他开始纠结:这么多技术,该用哪一个?...比如鱼皮用到了 MySQL 数据库,但是这个 MySQL 哪儿来? 以前的话,鱼皮都是去买一台云服务器,自己搭建 MySQL。...代码优化 鱼皮在写代码时候,始终保持主动优化代码好习惯,注重代码时空复杂度;并且重复代码多了,会想办法抽象成函数或者使用设计模式。之前专门写文章分享过编程习惯:代码小倔强 。

72531

答知友困惑:Java零基础如何入门,不知道怎么学,迷茫ING

经常和群友说,编程到最后并不是写代码,写代码是最最容易事情。...---- 知友:再说个开发以外吧,根据之前也找到了自己缺点应该在编程上会有障碍吧,做事不考虑后果严重性,缺乏独立思考能力,反应速度慢了思考就慢,所以就不知该怎么做了,自己不会去独立思考,只有等着别人叫着做什么就做什么自己不敢眼事...,也不会储存记忆,注意力集中,认为小问题就不去想去揣摩,想要改变应该怎么改变?...哥 确实没怎么写过代码,之前没接触过也就跟着课本上照着写,也忧虑不会编写,即使学了就怕还不会敲代码不清楚怎么敲,就是心里感觉到敲代码很困难 答: 写程序除了有技术能力之外,心境也是一大重点。...其实刚读大一,接触 C 语言时候,尤其是到了指针,链表,想过放弃,但是最后断了这个念头,要是代码大学不是白考了,转专业?现实点,能转专业,都是班里女生,死磕学成成绩,名额都没了。

33520

shell字符串单双引号

下面是粉丝随机投稿 入门生信接触编程语言是python和R,最后才是shell。...学习shell也只是草草了事,没有仔细对比三种编程语言间差别和特点,自认为很聪明把python和R相关基础知识直接迁移到了shell。...最近踩到了坑,才让意识到:基础牢,缺乏思考,非常吃亏!.../W0${i}.sort.bam - done 运行非常成功!结果正常输出!然后就愉快地去重并call variant,但是当我查看g.vcf文件发现样本名为W0 这是怎么回事?...养成一个好习惯是非常重要....由于小小字符串问题,现在就需要把已经生成bam文件标签和g.vcf文件样本名都替换掉...如果不及时替换可以想象到在最后genotypegvcf最后得到结果里会莫名其妙少好几个样本变异信息

4.8K40

如何处理前任程序员留下代码

在这篇文章,我们将通过我们可以使用五种技术来确保将对人性理解成为我们优势,现有代码和原作者汲取尽可能多帮助,并使得其他开发人员编写代码最后变得比原来更优秀。...在软件方面,这个理论意味着如果开发人员发现代码已经是一团糟,那么人本性会让他弄坏代码本质上说,我们心里想是(即使心理活动没有这么丰富),“既然最后一个人不在乎这代码为什么要在乎?”...或 “都是乱糟糟代码,谁知道是谁写。” 但是,这不应该成为我们借口。只要我们接触以前属于其他人代码,那么我们就要对这些代码负责,并且如果它不能有效工作的话,我们担负后果。...这样可以确保我们对代码进行过仔细考虑:它们不是因为疏忽而发出警告,而是我们明确地注意到了警告(如原始类型)。 一旦我们删除或明确地禁止所有警告,那么我们就必须确保代码保持免除警告。...为了不逃避这个问题,我们必须偿还技术债务,确保下一个接触代码的人不需要再付出代价。说不定,将来可能是我们自己感谢自己这个时候坚持

39020

程序员遇到Bug30个反应

浏览示例代码试图指出逻辑是如何工作。NOT运算符和比较标记数量又是如此之多。经常回过头去更新自己逻辑以便于更好地适合未来做法。 8.“用30分钟写函数,花2小让它工作。”...这难道不像我们自己编程故事吗?你正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命错误。所以,现在你必须回过头去删除一些代码块,以找出错误发生行号。...但是,如果这还是意味着另一个小时浪费?对于这样情况并不陌生,令人非常令人沮丧。 20.“哦,天哪,以前为什么写点注释?”...在使用带有坏文档插件或框架,最令人沮丧是,你必须靠自己去深入钻研源代码喜欢开发人员花时间去专门设计可用文档页面的项目。所有的参数和选项都解释清清楚楚,甚至可能会被用在一些示例代码片段。...有时,在你计算机传输文件到实时服务器时候,更新PHP /Ruby/ Python / SQL版本可以解决调试问题。本地更新很少能够帮助修复源代码bug,除非你版本已经过时无可救药。

44930

程序员遇到 Bug 30 个反应,你是哪一种?

浏览示例代码试图指出逻辑是如何工作。NOT运算符和比较标记数量又是如此之多。经常回过头去更新自己逻辑以便于更好地适合未来做法。 8.用30分钟写函数,花2小让它工作。...这难道不像我们自己编程故事吗?你正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命错误。所以,现在你必须回过头去删除一些代码块,以找出错误发生行号。...但是,如果这还是意味着另一个小时浪费?对于这样情况并不陌生,令人非常令人沮丧。 20.哦,天哪,以前为什么写点注释?...于是,你不得不额外花20分钟去搜索技术故 障,原本只需要用1秒钟补上那个缺少分号即可。嗯,这就是调试软件乐趣。 23.不知道让别人来修复代码花多少钱?...本地更新很少能够帮助修复源代码bug,除非你版本已经过时无可救药。所以,值得一试! 29.应该更有条理并且去学习Git ……下周就去研究它。 开 源版本控制包Git在程序员中非常受欢迎。

1.1K90
领券