分类: 剑指offer算法67题

记录剑指offer中67道算法题的刷题历程,参考博主@阿秀的学习笔记。

60 篇文章

剑指offer67题-No50.数组中重复的数字
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 法1:哈希表,时间复杂度On,空间复杂度On bool duplicate(int numbers[], int length, int* duplication…
剑指offer67题-No48.求两个数相加
一般都是位运算,记住怎么用位运算求+吧。 可以参考:【每日算法Day 66】经典面试题:不用四则运算如何做加法? - 知乎 1)两个数做^运算,得到各位相加不进位的计算结果 2)两个数做&运算,得到进位。因为进位是要加到左一位的,所以需要左移1 3)循环操作,直到进位为0 int Add(int num1, int num2) { // 最…
剑指offer67题-No45.扑克牌顺子
模拟写法,时间复杂度Onlogn,花在快排身上。 bool IsContinuous(vector<int>& numbers) { if(numbers.size() == 0) return false; sort(numbers.begin(), numbers.end()); int cnt = 0; // 统计赖子个数 fo…