算法(左程云)1

异或

有n种数字,其中 n - 1种在数组中出现了偶数字,1个数字出现了一次,怎么找出?

很简单,遍历一遍,全部异或,剩下的就是那个数字

有n种数字,其中 n - 2 种在数组中出现了偶数次,2 种数字出现了1次,怎么找出?

也全部异或一遍,然后剩下的那个数字的某个位数为1的话表示两个出现一次的数字的某一个数字这个位是1,然后再遍历一遍数组,将这个位上同样是1的数字和上一次异或的结果异或一次(其中,另一个出现一次的数字不会被选择,然后其他的数字出现了偶数次,那个位数为1的出现1次的数字就会被异或掉),剩下的就是另一个出现了一次的数字

取自己最右侧的1的位

cpp 复制代码
eor & (~eor + 1)

比较器

  • 返回负数的时候,第一个参数排在前面
  • 返回正数的时候,第二个参数排在前面
  • 返回0的时候,谁在前面无所谓
cpp 复制代码
public int compare(Student o1,Student o2) {
    return o1.id - o2.id;
}  升序

public int compare(Student o1,Student o2) {
    return o2.id - o1.id;
}  降序

Arrays.sort(students,this::compare);

学习视频:1.认识复杂度和简单排序算法_哔哩哔哩_bilibili

相关推荐
charliejohn1 小时前
计算机考研 408 数据结构 图论-关键路径
数据结构·图论
David猪大卫17 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
vvilkim18 小时前
数据结构类型、区别与应用场景:一篇讲透选型逻辑
数据结构
阿卡好可爱1 天前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
心仪久了会沦陷2 天前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
码少女2 天前
数据结构——图的基础
数据结构
Severus_black2 天前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
二本咕咕-机械转码2 天前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表