自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bruce_zhen的博客

bruce_zhen的博客

  • 博客(21)
  • 资源 (8)
  • 收藏
  • 关注

原创 剑指Offer——包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:使用两个栈,一个存数据,一个存最小值,两个栈中的元素数量始终是一致的,也就是数据栈中push元素时,也要把当前最小值push进最小值栈。class Solution {private: stack<int> m_min; stack<int&...

2019-07-31 15:17:50 83

原创 剑指Offer——树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:要依次遍历A中的节点,找到和B的根节点一样的节点时,就检查A中以当前节点存在的子树是否包含B。class Solution {public: bool HasSubtree(TreeNode* A, TreeNode* B) { bool result =...

2019-07-31 14:58:46 72

原创 剑指Offer——二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路:先前序遍历二叉树,若有子树,就交换两个子树,若是叶子节点,就不交换。class Solu...

2019-07-31 14:21:10 73

原创 剑指Offer——合并两个排序的链表

非递归版ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(!pHead1) return pHead2; if(!pHead2) return pHead1; ListNode* p1=pHead1; ListNo...

2019-07-30 21:00:36 74

原创 剑指Offer——反转链表

题目描述——输入一个链表,反转链表后,输出新链表的表头。思路:一个指针指向当前节点,一个指针指向前驱节点。 ListNode* ReverseList(ListNode* pHead) { if(!pHead) return NULL; ListNode* p = pHead; ListNode* pre = NULL;...

2019-07-30 18:36:59 69

原创 剑指Offer——链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路:快慢指针,快的先走k步,到第k个节点,然后快慢指针一起跑,快指针到最后一个节点时,慢指针就是倒数第k个节点。注意:1,边界条件:头结点为空或者k为0;2,快指针先走k步,i<k-1即可;3,一起跑的终止条件是快指针指到最后一个节点而不是最后一个节点的next。ListNode* FindKthToTail(ListNode* p...

2019-07-30 17:39:53 120

原创 剑指Offer——调整数组顺序使奇数位于偶数前面

思路:此题若没有“保证奇数和奇数,偶数和偶数之间的相对位置不变”这一条件,可以用快排的思想,但是条件所限,只能考虑稳定的算法,快速排序、选择排序、希尔排序都是不稳定的,只能选冒泡排序,插入排序了。void reOrderArray(vector<int> &a) {//基于冒泡排序 int len = a.size(); if(len==0)...

2019-07-30 17:13:06 83

原创 剑指Offer——数值的整数次方

思路:考虑边界情况,1:0-exponent基数为0,指数为负数的话,没有意义;2:基数不为0,指数为负数的话,要考虑结果变为倒数。class Solution {public: double Power(double base, int exponent) { if(base==0.0&&exponent<0) retur...

2019-07-30 15:33:31 124

原创 剑指Offer——二进制中1的个数

思路一:让1不断左移去位与nint NumberOf1(int n) { if(n==0) return 0; int count = 0; int flag = 1; while(flag!=0) { if((n&flag)!=0) ...

2019-07-30 10:02:22 113

原创 剑指offer——矩形覆盖

思路:如上图,用2x1的去覆盖2x10的矩形,让2x10为f(10),第一步有两种方法:1,2x1的竖着放在第一列,则还剩下2x9的矩形,记为f(9);2,2x1的横着放在第一行,那么第二行只能横着放一个,则还剩下2x8的矩形,记为f(8);则f(10)=f(9)+f(8)。int rectCover(int n) { if(n<=2) return ...

2019-07-29 20:53:15 133

原创 剑指Offer——跳台阶/变态跳台阶

跳台阶思路:斐波那契数列的应用。其实第一次只有两种跳法:第一次跳一个台阶,那么后面就有f(n-1)次跳法;第一次跳两个的话,后面就有f(n-2)次跳法int jumpFloor(int number) { if(number<=2) return number; int minN = 1; int m...

2019-07-29 20:33:52 84

原创 剑指Offer——斐波那契数列

思路:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2).首先想到递归,但是会产生一些冗余计算,复杂度是O(n^2),所以用迭代方法,让f(0)=0,f(1)=1作为已知条件,从下往上算。[外链图片转存失败(img-FKTTu1CH-1564393199043)(https://www.cuijiahua.com/wp-content/uploads/2017/11/basis_7...

2019-07-29 17:40:55 105

原创 剑指Offer——旋转数组的最小数字

思路:采用二分查找,分这几种情况。1. 保证旋转数组(a[low]>=a[high]),若不保证,则没有旋转,是单调递增的,直接输出第一个数;否则下面几种情况;2. 只剩两个数,第二个肯定最小;3. a[low]=a[mid]=a[high],如[1,1,1,0,1],最小值不好判断,只能挨个找,因为a[low]>=a[high],所以让low++;4. a[mid]>=...

2019-07-28 16:43:03 72

原创 剑指Offer-用两个栈实现队列

思路:一个栈s1入队列,一个栈s2出队列。入队列时,把s2全部倒在s1中,然后将入队列的数压在s1中;出队列时,把s1全部倒在s2中,取s2栈顶元素出队列。class Solution{public: void push(int node) { while(!s2.empty()) { s1.push(s2.top()); ...

2019-07-27 15:36:26 67

原创 剑指offer——重建二叉树

思路:知道前序和中序求二叉树,我觉得主要是弄清前序序列和中序序列的长度区间。首先在前序里面找根节点,在中序里面找左右子树;在中序序列里面找到根节点所在的位置,求出左子树长度和右子树长度,然后递归建树。TreeNode* reConstructBinaryTreeCore(vector<int> pre, int preL, int preH, vector<int> vi...

2019-07-27 15:21:41 81

原创 剑指offer——替换空格

思路:遍历字符串找出空格数目count,原长度+count*2=替换后长度。从后往前插。void replaceSpace(char *str,int length) { if(length==0||str==NULL) return; int count=0; for(int i=0;i<length;i++) ...

2019-07-27 11:33:50 84

原创 剑指offer——二维数组中的查找

思路:考虑从四个角遍历,首先去除左上角和右下角的考虑,因为在左上角的走向都是递增的,在右下角的走向都是递减的,没法判断往哪个线路走;所以要考虑从另外两个角出发。bool Find(int target, vector<vector<int> > array) { int row = array.size(); if(row==0) ...

2019-07-27 11:12:36 80

原创 编程——哈希表

求最大公共子串的长度例如 “abcabcbb”->3 “bbb”->1思路:采用双指针,low,high。每次用high指向的元素在哈希表中查找上一次出现的位置,若该位置>=low,则说明在low到high之间已经存在该元素,那么令low为上一次出现位置+1,修改该元素最后出现的位置;若<low,说明low到high中没有该元素,将该元素入map,并计算最大长度。in...

2019-07-20 21:02:09 651

原创 编程——数学类专题

1 二进制加法给定两个字符串a,b,每个字符串中是二进制数,编程实现两个数相加的结果。例,a=“11”,b=“1”,return “100”思路:首先逆置字符串使低位对齐,每遍历(按最大的长度遍历)一次,两个对应位相加,再加上低位的进位,若某个字符串上没有数字的时候(下标是否>=字符串长度-1),加上0。用String累加每一位上产生的结果,最终把String反转,就是最终结果。st...

2019-07-19 21:15:27 770

原创 Linux常用命令

~/ 主目录 ./当前目录 …/上一级目录

2019-07-13 10:54:44 86

转载 Linux上,最常用的一批命令解析(10年精选)(转载)

Linux上,最常用的一批命令解析(10年精选)

2019-07-03 13:57:28 177

红米K20Pro(尊享版)+MIUI12.5.6官方recovery

红米K20Pro(尊享版)+MIUI12.5.6官方recovery

2024-08-03

Python3.8环境下matplotlib3.3.2离线安装

Python3.8环境下matplotlib3.3.2离线安装

2024-06-24

Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_20190401.zip

斐讯N1 Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_20190401

2021-04-10

背包问题最新版讲解.zip

背包问题详解,本文题为《背包问题九讲》,从属于《动态规划的思考艺术》系列。 这系列文章的第一版于 2007 年下半年使用 EmacsMuse 制作,以 HTML 格式发布 到网上,转载众多,有一定影响力。 2011 年 9 月,本系列文章由原作者用 L ATEX 重新制作并全面修订,您现在看到的是 2.0 beta 版本,本文版权归原作者所有,采用 CC BY-NC-SA 协议发布。

2019-08-07

pytorch 0.4.1带导航无缝对接官网网站,离线看相当爽

pytorch 0.4.1带导航无缝对接官网网站,离线看又快又爽。

2018-12-09

C++操作矩阵工具类Eigen

C++操作矩阵工具类Eigen,可以计算旋转矩阵,SVD分解,矩阵运算

2018-08-11

QT5.7+OPENGL画正方体

QT5.7+OPENGL画正方体,实现鼠标对正方体的的交互,对于OpenGL和QT的初学者有一定的帮助

2018-04-10

.NET课程设计——通讯录管理系统

.NET课程设计——通讯录管理系统,Windows程序设计,内含代码,数据库,和详细文档说明。

2018-03-10

keras入门——HelloWorld所需的训练和测试数据

我的博客“keras入门——HelloWorld”所需的训练和测试数据

2018-03-10

windows程序设计-课程设计-通讯录管理系统

windows程序设计-课程设计-通讯录管理系统

2017-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除