自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 【LeetCode链表相关】

LeetCode链表相关

2022-11-13 10:57:05 293 1

原创 JAVA程序运行流程

java程序运行流程及其类在内存中的存储形式

2022-11-05 14:40:55 731

原创 动态规划学习

动态规划的代码学习import java.util.HashSet;import java.util.List;import java.util.ArrayList;public class DynamicProgramming { //打印字符串的子串 public static List<String>substring(String s) { char[] str=s.toCharArray(); List<Stri

2021-07-25 21:16:24 123

原创 用动态规划来解《最长公共子序列》、《最长公共子串》、《最长递增子序列》

Hello,爱客们好,我是Tony欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!最长公共子序列编程题给定两个字符串str1和str2,返回两个字符串的最长公共子序列举例str1=“1A2C3D4B56”,str2=“B1D23CA45BA”"123456"或者“12C4B6”都是最长公共子序列,返回哪一个都行思路这道题可以用经典的动态规划来做,...

2020-02-18 20:22:08 147

原创 N皇后问题(普通递归、回溯、位运算)

哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!编程题N皇后问题是指在N*N的棋盘上摇摆N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上。给定一个整数n,返回n皇后的摆法有多少种?举例n=1,返回1n=2或3,2皇后和3皇后问题怎么摆都不行,返回0n=8,返回92思路如果在(i,j)位置(第i行第j列放置了...

2020-02-18 18:58:08 258

原创 字符串中数字子串的求和

哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!编程题:给定一个字符串str,求其中全部数字串所代表的的数字之和。要求1、忽略小数点字符,例如“A1.3”其中包含两个数字1和3.2、如果紧贴数字字串的左侧出现字符“-”,当连续出现的数量为奇数时,则数字为负,连续出现的数量为偶数,则数字视为正。例如"A-1Bc–12",其中包...

2020-02-18 18:31:58 1083

原创 《汉诺塔》进阶内容算法

哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!这篇博客将以《汉诺塔》为基础进行汉诺塔进阶:编程题给定一个整形数组arr,其中只含有1,2和3,代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,arr[i]的值代表第i+1个圆盘的位置。比如,arr=[3,3,2,1],代表第一个圆盘在右柱上、第2个圆盘在右柱上、第3个...

2020-02-13 19:37:26 359

原创 从《汉诺塔》来讲递归算法

哈喽,大家好,我是Tony:这篇博客将以《汉诺塔》为例进行递归编程:编程题给定一个整数n,代表汉诺塔游戏中从小到大放置的n个圆盘,假设开始时所有的圆盘都放到左边的桌子上,想按照汉诺塔游戏规则把所有的圆盘都移到右边的柱子上。实现函数打印最优移动轨迹举例n=1时,打印:move from left to rightn=2时,打印:move from left to midmove ...

2020-02-12 20:37:29 302

原创 神经网络的计算过程

Hello,大家好,我是Tony欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!神经网络的计算过程对应课程中9.1-9.8神经网络的计算过程对于二元分类问题(逻辑回归),系统输出的结果是1或0对于多元分类问题,神经网络输出的结果是多维向量:[1000],[0100],[0010],[0001]\left[\begin{array}{c}{1} \\...

2020-02-10 18:16:31 3038

原创 逻辑回归模型及代价函数正则化

Hello,大家好,我是Tony欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!逻辑回归(logistic Regression Model)本节将介绍逻辑回归的几个基本概念:1、解释模型输出:逻辑回归目的是输出一下方程:hθ(x)=g(θTx)h_{\theta}(x)=g\left(\theta^{T} x\right)hθ​(x)=g(θTx...

2020-02-06 16:28:58 620 1

原创 机器学习中对过拟合的正则化策略

Hello,大家好,我是Tony:欢迎访问我的个人主页:Tony’s blog,让我们一起站在巨人的肩膀上。上一张男神的照片,该笔记配合Andrew Ng课程Maching Learning 课时7-1至7-4对于过拟合的建议1、减少特征的数量这里要说明一点对于一类数据,它的拟合数据为:y=θ0+θ1∗x1+θ2∗x12+θ3∗x13+...+θn∗x1ny=\theta_0+\...

2020-02-05 13:56:28 137

原创 教程配置:TexLive+TexStudio+SumatraPDF简介

前言在写作过程中,我常使用LaTex进行写作,可以把Latex看成是一个编程语言,通过特定的编辑器编译就能生成相应内容1.TexLive下载地址:2.TexStudio挺好的编辑器...

2020-01-28 11:10:41 1873

原创 探索栈与队列的关系(以《用两个栈组成队列》为例)

题目编写一个类,用两个栈实现队列,支持队列(先进先出)的基本操作:push:将一个元素置入queue中​ pop:移除queue中的第一元素此函数无返回值,想处理被移除的元素,必须先调用front()调用者保证queue非空front:返回第一个被置入的元素,即返回queue最前端的元素调用者保证queue不空back:返回最后一个被插...

2020-01-03 14:48:43 117

原创 以《换钱的方法数》来学动态规划及其优化

动态规划初步入门近期在做程序员面试指南,里面有一道《换钱的方法数》问题,我觉得对理解动态规划和递归优化搜索很有帮助。题目给定数组arr,arr中所有的值都为正数且不重复。每一个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数CoinNum代表要找的钱数,求换钱的有多少种方法。举例arr=[5,10,25,1],CoinNum=0;组成0元的方法有1种,就是所有货币都...

2019-12-27 09:35:03 211

原创 Leetcode62不同路径、63不同路径 II

62 不同路径题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: ...

2019-07-27 15:52:20 105

原创 剑指offer-对称的二叉树

题目描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。算法思想:对称的二叉树遍历,先左后右和先右后左结果是一样的代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(i...

2019-06-13 18:49:14 124

原创 剑指offer-删除链表中重复结点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5算法描述:这道题我是用循环遍历链表的方法来做的。设置一个新的头结点,放到第一位,以免遇到前两位或者前三位,前四位…结点相等的情况创建三个指针pre,cur和l...

2019-06-13 10:27:52 125

原创 剑指offer-链表中环的入口结点

题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。算法思想:这道题主要有两个证明结论要记住:设置快慢指针(一个指针每次走一步,另一个指针每次走两步),假如有环,他们一定能相遇两个指针从链表头结点和相遇结点同时出发,每次走一步,一定会在入口结点处相遇代码:/*struct ListNode { int val; struct Li...

2019-06-12 09:22:04 144

原创 剑指offer-正则表达式匹配

题目描述:请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配算法思想:分为下一个字符是*和下一个字符不是*两种情况代码:class Solution {...

2019-06-09 17:34:04 99

原创 剑指offer-求1+2+3+...+n(逻辑与的短路特性)

题目描述:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。算法思想:这道题巧妙利用了逻辑与的短路特性:假设有一个语句(false)&&(true)当判断&&前面的语句为false时,&&后面的语句是不会执行的逻辑或的短路特性:假设有一个语句...

2019-06-09 15:51:14 170

原创 剑指offer-孩子们的游戏(圆圈中最后剩下的数)

欢迎大家访问我的博客Tony’s Blog,一起站在巨人的肩膀上!题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中...

2019-06-09 15:26:23 103

原创 剑指offer-左旋转字符串

题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!算法思想:主要就是一个公式这样的话思路就很明显了:按照n的大小,把待处理字符串分成两坨...

2019-06-08 13:46:22 91

原创 剑指offer-扑克牌顺子

题目描述:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5...

2019-06-07 09:27:47 83

原创 C++ STL关联性容器set与map基本操作简述

欢迎大家访问我的博客Tony’s Blog,一起站在巨人的肩膀上!在之前一篇博客C++标准库(STL)栈(stack)、队列(queue)、双向队列(deque)、容器(vector)的基本操作中,详细说明了顺序容器vector、stack、queue、deque的使用,本期来说说STL中关联性容器set与map的使用。map简述概念map是STL中很有用的容器,底层为红黑树,它提供...

2019-06-06 21:31:28 265

原创 剑指offer-数组中重复的数字、数组中只出现一次的数字(内含STL map讲解)

题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。算法思想:建立map映射,遍历一边数组,记录各个数字出现的次数,一旦有数字出现2次,就证明这个数字是原数组第一个重复的...

2019-06-05 11:45:02 314

原创 剑指offer-二叉树专栏

摘要这是一个二叉树的专题,有关二叉树、完全二叉树、二叉搜索树、二叉树基本的建立与遍历等基础知识请读者参考之前的博客数据结构-二叉树第一大部分: 二叉树的输出这三个操作是不一样的二叉树的遍历常用递归的形式,那前序遍历来说,先访问根结点,在访问左子树,再访问右子树,遇到空结点,直接跳过,只打印有数值的结点。因此如果只知道二叉树的前序遍历无法确定一颗二叉树,至少要有中序遍历和前序(或者后序)...

2019-06-02 10:32:35 254

原创 剑指Offer-不用加减乘除做加法

题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。算法描述:位运算:二进制每位相加就相当于各位做异或操作二进制计算进位值,相当于左移一位注意代码注释代码:class Solution {public: int Add(int num1, int num2) { int i,j,temp,k; ...

2019-05-29 19:12:44 94

原创 剑指offer-数组中出现次数超过一半的数字

题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。算法思想:建立map储存数组中每个数字出现的次数代码:class Solution {public: int MoreThanHalfNum_Solution(...

2019-05-26 19:50:36 99

原创 剑指offer-二叉树的深度

题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。算法思想:一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么数的深度应该为左子树的深度加1,;同样如果根结点只有右子树而没有左子树,那么树的深度应该是右子树的深度加1.代码/*struct TreeNode { int val; s...

2019-05-26 16:52:03 120

原创 剑指offer-数据流中的中位数

题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。算法思路:这道题的算法比较简单,每次输入一个数据,之后对这个vector进行排序找中位数就好了,注意看...

2019-05-26 10:48:50 110

原创 深度学习-初识Tensorflow框架、Keras框架(中篇笔记)

欢迎大家访问我的个人主页:https://yunfanzhilu.github.io/以下为读书笔记摘要这篇文章是深度学习-初识TensorFlow框架、Keras框架中篇内容,这文章中我将继续以MNIST为例,建立多层卷积网络(大体就是三层:卷积层、池化层、全连接层)来进行识别,此方法可以将识别率提升至98%左右。卷积(Convolution)概念卷积是深度学习一个重要的概念,个人...

2019-05-24 15:27:54 363

原创 深度学习-初识Tensorflow框架、Keras框架(上篇笔记)

这篇文章主要记述了博主安装Tensorflow,,Keras的过程,其中遇到的问题,并以MINIST(基于Tensorflow)和CNN图片分类(基于Keras)学习两种框架的使用,最后对比一下两种框架以便在后期的学习更好的选择。

2019-05-22 08:43:52 783

原创 人工智能、机器学习、深度学习的区别和联系

摘要本文主要讲述了人工智能(Artificial Intelligence,AI)、机器学习(Maching Learning,ML)、深度学习(Deep Learning,DL)三者概念、区别和联系,内容比较短,我想尽量用简洁明快的语言简述。概念人工智能:制造智能的机器,更特指制作人工智能的程序。人工智能模仿人类的思考方式使计算机能智能的思考问题,人工智能通过研究人类大脑的思考、学习和...

2019-05-21 20:37:10 914

原创 剑指offer-数值的整数次方

欢迎大家访问我的个人主页:https://yunfanzhilu.github.io/题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。算法思想:这道题我觉得主要考察的是你能不能在面试的时候想问题想全面,这道题就有6种情况,注意取倒数的时候要用double类型。代码:class Solution {public:...

2019-05-21 20:30:10 125

原创 剑指offer-链表专栏

本文是剑指offer链表专题,一般一般从尾到头打印链表题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。算法思想:建立栈来实现,将链表中所有元素都进栈后,出栈的顺序就是链表从尾到头打印的顺序。代码://链表结点定义/*** struct ListNode {* int val;* struct ListNode *next...

2019-05-19 15:19:55 229

原创 剑指offer-替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。算法思想遍历以便字符串,求出字符串中空格的个数,这样也就计算出了替换之后的字符串的总长度。设置两个指针p1,p2,这里的指针并不是传统意义上的指针(*p之类)指向内存地址,而就是字符串数组的下标。类似的“指针”还有剑指off...

2019-05-16 20:50:12 104

原创 剑指offer-树的子结构

题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)算法思想:用了树的基本概念,两个函数,每个函数分别有一次递归,HasSubtree这个函数查看根结点是否相同,如果相同执行fun函数,fun函数的作用是在判定好根结点相同后,查看这个根结点下面是不是和Tree2一样。注意:在fun()函数之中要加这两句 // 如果Tree2已经...

2019-05-15 21:51:31 80

原创 剑指offer-斐波那契数列、跳台阶、变态跳台阶、矩形覆盖

经典的斐波那契数列题型,经常在面试问到,不仅仅要求会用递归、循环来做,也要掌握斐波那契数列的优化问题。斐波那契数列:1,1,2,3,5,8,13,21…斐波那锲数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39递归代码:long long Fibonacci(unsigned int n){if(n&...

2019-05-15 19:51:23 131

原创 剑指offer-和为S的连续正数序列、和为S的两个数字

这两道题目其实要介绍一种新的算法:双指针算法:定义两个指针pSmall和pBig,根据pSmall和pBig中间窗口的值判断与sum的关系,如果比sum小pBig往后走,如果比sum大,pSmall就往前走,直到窗口中的数字和为S。第一点说明:这里的指针并不一定就是指实际意义上的指针,也可以指一个数组中的下标数字,例如a[0],a[1],a[2]…其中0,1,2…这些下标就可以当成一个“指针...

2019-05-14 21:32:41 104

原创 剑指offer-重建二叉树、从上往下打印二叉树、序列化二叉树

二叉树的遍历、按层打印、序列化这三个操作是不一样的二叉树的遍历常用递归的形式,那前序遍历来说,先访问根结点,在访问左子树,再访问右子树,遇到空结点,直接跳过,只打印有数值的结点。因此如果只知道二叉树的前序遍历无法确定一颗二叉树,至少要有中序遍历和前序(或者后序)两个遍历顺序才能重建起这颗二叉树。二叉树的序列化与遍历相似,不同的是遇到空结点,要打印“#”以示说明。因此如果知道一个二叉树的序列...

2019-05-13 20:08:29 168

空空如也

空空如也

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

TA关注的人

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