剑指 offer
子墨777
Try to make yourself more excellent!
展开
-
237. 删除链表中的节点
237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4...原创 2020-04-23 10:28:05 · 103 阅读 · 0 评论 -
24. 机器人的运动范围
地上有一个mm行和nn列的方格,横纵坐标范围分别是0∼m−10∼m−1和0∼n−10∼n−1。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。但是不能进入行坐标和列坐标的数位之和大于kk的格子。请问该机器人能够达到多少个格子?样例1输入:k=7, m=4, n=5输出:20样例2输入:k=18, ...原创 2020-04-22 21:26:19 · 245 阅读 · 1 评论 -
18. 重建二叉树
输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。注意:二叉树中每个节点的值都互不相同; 输入的前序遍历和中序遍历一定合法;样例给定:前序遍历是:[3, 9, 20, 15, 7]中序遍历是:[9, 3, 15, 20, 7]返回:[3, 9, 20, null, null, 15, 7, null, null, null, null]返回的二叉树如下所示: ...原创 2020-04-22 09:38:11 · 90 阅读 · 0 评论 -
17. 从尾到头打印链表
输入一个链表的头结点,按照从尾到头的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(in...原创 2020-04-21 20:40:58 · 132 阅读 · 0 评论 -
16. 替换空格
16. 替换空格请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是1000。注意输出字符串的长度可能大于1000。样例输入:"We are happy."输出:"We%20are%20happy."class Solution {public: string replaceSpaces(string &...原创 2020-04-21 20:29:05 · 143 阅读 · 0 评论 -
15. 二维数组中的查找
15. 二维数组中的查找题目来源 https://www.acwing.com/problem/content/16/在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10...原创 2020-04-21 20:15:41 · 94 阅读 · 0 评论 -
14. 不修改数组找出重复的数据
14. 不修改数组找出重复的数据给定一个长度为n+1n+1的数组nums,数组中所有的数均在1∼n1∼n的范围内,其中n≥1n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。思考题:如果只能使用O(1)O(1)的额外空间,该怎么做呢?cl...原创 2020-04-21 19:46:05 · 257 阅读 · 0 评论 -
13. 找出数组中重复的数字
13. 找出数组中重复的数字题目来源 https://www.acwing.com/problem/content/description/14/给定一个长度为nn的整数数组nums,数组中所有的数字都在0∼n−10∼n−1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在0...原创 2020-04-21 16:51:41 · 183 阅读 · 0 评论 -
剑指 offer 判断一棵树是不是后序遍历
class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { return bst(sequence, 0, sequence.size() - 1); }private: bool bst(vector<int> seq, int begin, ...原创 2020-03-09 16:14:22 · 104 阅读 · 0 评论 -
剑指 offer 从上到下打印二叉树 (二)
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<int> PrintFro...原创 2020-03-09 14:07:28 · 69 阅读 · 0 评论 -
剑指 offer 从上到下打印二叉树
vector<TreeNode*> data; vector<int> result; data.push_back(root); if (root == nullptr) return result; while (!data.empty()){ ...原创 2020-03-09 14:04:24 · 104 阅读 · 0 评论 -
剑指 offer 计算栈中最小的数据
class Solution {//在这里利用一个辅助栈来解决问题public: void push(int value) { datastack.push(value); if (minstack.empty()){ minstack.push(value); } if (value <= ...原创 2020-03-06 17:31:05 · 61 阅读 · 0 评论 -
剑指 offer 树的镜像
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: void Mirror(TreeNode *pRoo...原创 2020-03-05 21:19:20 · 71 阅读 · 0 评论 -
剑指 offer 判断一棵树是否包含另一棵树
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: bool HasSubtree(TreeNode* ...原创 2020-03-05 20:47:34 · 170 阅读 · 0 评论 -
剑指 offer 链表合并
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ...原创 2020-03-05 19:02:09 · 72 阅读 · 0 评论 -
剑指 offer 反转链表
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { if (pHead ==NUL...原创 2020-03-05 16:45:03 · 100 阅读 · 0 评论 -
剑指 offer 计算连表倒数第 k 个节点
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ...原创 2020-03-05 15:31:44 · 71 阅读 · 0 评论 -
剑指 offer 计算数的N次方
class Solution {public: double Power(double base, int exponent) { return pow(base,exponent); }};原创 2020-03-01 18:32:02 · 92 阅读 · 0 评论 -
剑指 offer 计算整数里面 1 的个数
class Solution {public: int NumberOf1(int n) { int count = 0; while(n){ count ++; n = (n-1) &n; } return count; ...原创 2020-03-01 18:00:50 · 134 阅读 · 0 评论 -
剑指 offer 小青蛙跳台阶
class Solution {public: int jumpFloor(int number) { int array[2] = {0,1}; if (number<2){ return array[number]; } else{ long long one =1; ...原创 2020-03-01 17:21:52 · 101 阅读 · 0 评论 -
剑指 offer 斐波那契数列
class Solution { //在这里采用的是自底而上的方法public: int Fibonacci(int n) { int array[2] = {0,1}; if (n<2){ return array[n]; } else{ long long one...原创 2020-03-01 16:51:40 · 59 阅读 · 0 评论 -
剑指 offer 旋转数组的问题
目前的话,只是做到了 三分之一的通过率。class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { if(rotateArray.empty()){ return 0; } int index1 = 0;...原创 2020-03-01 16:10:55 · 72 阅读 · 0 评论 -
剑指 offer 关于年龄的排序
void sortage(int ages[],int length){ if (ages==NULL || length <0){ return; } int oldest = 99; int array[oldest+1]; for (int i =0; i<oldest;i++){ array[i]...原创 2020-03-01 14:25:41 · 145 阅读 · 0 评论 -
剑指 offer 练习题 利用两个栈来模拟一个队列
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int temp; while(stack2.empty()){ while(!stack1.empty()){ ...原创 2020-03-01 13:26:58 · 100 阅读 · 0 评论