bloodfire
bloodfire
全部文章
分类
刷题(146)
知识点(10)
读书笔记(25)
题解(49)
归档
标签
去牛客网
登录
/
注册
bloodfire的博客
全部文章
(共230篇)
4/30剑指offer
1.不用加减乘除做加法写一个函数求两个整数之和,要求函数体内不得使用四则运算符号。思路:利用位运算。第一步不考虑进位对每一位相加,可以利用异或符号;第二位考虑进位,只有1+1的时候才会产生一个进位,此时可以想象两个数先做位与运算,然后再向左移动一位。第三步把前面两个步骤的结果相加(相加即仍然重复上述...
2020-04-30
0
0
4/29剑指offer
1.圆圈中最后剩下的数字0,1,...,n-1这n个数字排成一个圆圈,从0开始,每次删除圆圈里第m个数字。求出这个圆圈里剩下的最后一个数字。思路一:用环形链表模拟圆圈:创建一个一共有n个节点的环形链表,然后每次在这个链表中删除的第m个节点。 class Solution { public: ...
2020-04-29
0
0
4/28剑指offer
1.队列的最大值滑动窗口的最大值:给定一个数组和滑动窗口的大小,找出所有滑动窗口的最大值。思路:建立一个两段开口的队列index,用来保存有可能是滑动窗口最大值得数字的下标。在存入一个数字的下标之前,首先要判断队列里已有数字是否小于待存入的数字。如果已有的数字小于待存入的数字,那么这些数字不可能是滑...
2020-04-28
0
0
4/27剑指offer
1.和为s的数字(1)合为s的两个数字:输入一个递增数组和一个数字s,在数组中任意找两个数,使得他们的和正好是s。思路:双指针,因为是排序数组,定义两个指针,一个在头一个在尾,如果二者相加小于s,那么就头++,大于s的话,尾++,等于s,返回这两个数。 class Solution { public...
2020-04-27
0
0
4/27题解
1.搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。可以假设数组中不存在重复的元素。你的算法时间复杂度...
2020-04-27
0
539
4/26题解
1.合并K个排序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(Lee...
2020-04-26
0
692
4/26剑指offer
1.数组中数字出现的次数(1)数组中只出现一次的两个数字数组中只有两个数只出现了一次,剩下的都出现两次,要求时间O(n),空间O(1)。思路:任何数异或自己都等于0.先将数组进行从头到尾的异或,得到的结果是两个数字的异或值,根据这个异或值第一个为1的位的位置,把数组分为两个数组,找出这两个数。 cl...
2020-04-26
0
0
4/25剑指offer
1.二叉搜索树的第k大节点思路:中序遍历的二叉搜索树是一个递增序列。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...
2020-04-25
0
0
4/25题解
1.给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路:回溯算法 class Solution { public: void backtrack...
2020-04-25
0
628
4/24 剑指offer
1.旋转数组的最小数字 //C++ 二分法 class Solution { public: int minNumberInRotateArray(vector<int> rotateArray) { if (rotateArray.empty()) return...
2020-04-24
0
0
首页
上一页
11
12
13
14
15
16
17
18
19
20
下一页
末页