自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

原创 python实现批量修改文件名

实现自动批量修改文件名import osroot='./images' #文件目录files=os.listdir(root)file=os.path.splitext(files[0])filename, type=filefor i in range(len(files)): os.rename(files[i], str[i]+type) #str[i]为新名字,可以改为其他...

2019-03-24 17:22:45 846

原创 double型比较大小

对于两个double类型的数,我们一般不直接比较他们的大小,因为计算机在表示小数时都有误差,我们一般认为偏差在一个较小的范围内则两个数据是相等的。 一般我们是这样做的:通过设定一个允许的误差值,对待判断是否相等的两个double类型数据做差求绝对值再和允许的误差做比较来判断是否相等。...

2018-11-03 16:38:36 4358

原创 TypeError: Descriptors should not be created directly, but only retrieved retrieved from theirparent

解决方法:将caffepb.py改为caffe_pb2.py即可。

2018-10-25 15:24:02 4668

原创 输出矩阵连乘所有的完全加括号形式

例如说,有四个矩阵ABCD相乘,那么所有的完全加括号结果为(A((BC)D)) (A(B(CD))) ((AB)(CD)) (((AB)C)D) (A(BC))D)。要求输出n个矩阵连乘所有的完全加括号结果。解决方法一基本思想:首先从1,2,3,4个矩阵的角度来归纳。如果只有一个矩阵A,那么很明显所有的完全加括号结果就是A本身。如果有两个矩阵A,B相乘,很明显所有的完全加括号结果就是AB。...

2018-10-15 21:15:49 5590 1

原创 矩阵连乘问题

一.定义完全加括号的矩阵连乘积可递归定义为:(1) 单个矩阵是完全加括号的;(2) 矩阵连乘积A是完全加括号的,则A可表示为2个完全加括号的矩阵连乘积B和C的乘积并加括号,即A=(BC)例如,有四个矩阵ABCD相乘,那么所有的完全加括号结果为(A((BC)D)) (A(B(CD))) ((AB)(CD)) (((AB)C)D) (A(BC))D)如果一个矩阵的连乘...

2018-10-15 20:44:42 1917

原创 python基础——函数

本文我们主要关注的可变参数的函数。一般来说,如果输入的参数是不固定的,那么我们可以用tuple或者list来解决输入的问题,但是这样的话我们在调用的时候就必须组装一个tuple或者list,显得有点多余。在Python中是这样解决这个问题的:在参数面前加一个*号。这样,在函数内部,参数接收到的就是一个tuple。def sum(*nums): s=0 for num in nu...

2018-09-30 21:16:27 109

原创 大整数乘法

设计一个有效的算法,可以计算两个n位大整数的乘法运算。如果按照我们日常的计算方法,应该就是将两个数逐位相乘,最后加起来得到最终的结果。由于是大整数乘法,那么我们用string来存储这两个数,因为是要做乘法,我们要从两个数的最低位开始乘,并且难免会有进位,所以我们打算翻转这两个string,使得更好操作一下。string multiply(string num1,string num2){ ...

2018-09-29 15:00:48 14094 1

原创 Leetcode Problem104

Maximum Depth of Binary Tree问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。问题解决:我们可以想象,对于一个节点指针,如果他为空,那么表示不存在,那么该节点的深度为0,如果该节点存在,但是不存在左右孩子,那么该节点的深度为1,如果是其他情况,那么我们只要再计算它左右孩子的深度即可,这样很明显可以利用递归来求出左右孩子...

2018-09-28 22:06:26 95

原创 Leetcode Problem404

Sum of Left Leaves问题描述:计算给定二叉树的所有左叶子之和。问题解决:题目描述得十分简洁明了,要计算所有左叶子的和,即满足该节点是左孩子并且还是叶子节点。很明显这道题还是二叉树的遍历问题,只要我们找到满足是左孩子且是叶子节点的所有节点之和就可以了。class Solution {public: int sumOfLeftLeaves(TreeNode* root)...

2018-09-28 21:53:17 94

原创 线性时间选择

问题:给定线性序集中n个元素和一个整数k,1<=k<=n,要求找出这n个元素中第k小的元素。我们采用快速排序的思想来解决这个问题。首先我们要找到基准的位置,如果基准的位置小于k,则表示第k小的元素在基准的后面,否则在基准的前面。如果能在线性时间内找到一个划分基准,使得按这个基准所划分出的2个子数组的长度都至少为原数组长度的 ε 倍(0<ε<1是某个常数),那么就可以在最...

2018-09-28 11:49:55 3620 1

原创 排序算法

学过数据结构的都知道,排序有内部排序和外部排序之分,本文我们主要关注的是内部排序算法。常见的排序算法如下图所示:排序算法可以分成以下几种:交换排序、插入排序、选择排序和归并排序。其中,冒泡排序和快速排序属于交换排序,插入排序和希尔排序属于插入排序,简单选择排序和堆排序属于选择排序,二路归并排序和多路归并排序属于归并排序。本文主要介绍这几种方法及其实现。冒泡排序冒泡排序(Bubble So...

2018-09-27 15:21:45 181

原创 二分搜索技术

二分搜索技术给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。分析:该问题的规模缩小到一定程度就可以容易地解决。而且该问题满足分治法的适用条件:该问题可以分解为若干个规模较小的相同问题;分解出的子问题的解可以合并为原问题的解;分解出的各个子问题是相互独立的。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素...

2018-09-26 21:12:06 1153

原创 算法设计与分析——分治术与递归(二)

一. 分治策略将要求解的较大规模的问题分割成若干个更小规模的子问题。对这若干个子问题进行求解。如果子问题的规模仍然不够小,那么再继续划分。将子问题的解合并为更大规模的解,自底向上求出原来问题的解。二. 分治法的适用条件该问题的规模缩小到一定程度就可以比较容易地解决。该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。利用该问题分解出的子问题的解可以合并为该...

2018-09-26 20:47:59 311

原创 Leetcode Problem221

Maximal Square问题描述:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。比如说在下面的二维矩阵中, 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0只包含1的最大正方形的面积为2*2=4。问题解决:正方形的面积等于边长的平方,所以找到最大的正方形意味着其边长也是最大的。在这里我们可以认为一个1也是一个...

2018-09-26 20:11:07 122

原创 Leetcode Problem108

Convert Sorted Array to Binary Search Tree问题描述:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。问题解决:题目要求是要将一个按照升序排列的有序数组转换为一棵高度平衡的二叉搜索树,二叉搜索树我们知道,就是节点的值小于其右子树节点的值而大于其左子树节点的值,平衡则为该树的任意节点左右子树的高度差不超过一。因为数组已经是按照升序排列好了的,所...

2018-09-26 17:36:12 207

原创 Leetcode Problem235

Lowest Common Ancestor of a Binary Search Tree问题描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”问题解决:这道题我的想法是这样的,先找出一个节点的所有祖...

2018-09-19 17:56:35 361

原创 Leetcode Problem257

Binary Tree Paths问题描述:给定一个二叉树,返回所有从根节点到叶子节点的路径。问题解决:这个问题其实也是一个非常简单的问题,我在这里新写了一个函数path(root, str)。其中root为当前节点,str为根节点到当前节点的路径上的值,当遍历到叶子节点时,就可以储存起来了,如果不是叶子节点,那么继续往下一层进行操作。值得注意的是,结果的格式要求是类似"1->2-&gt...

2018-09-18 23:22:54 94

原创 Leetcode Problem101

Symmetric Tree问题描述:给定一个二叉树,检查它是否是镜像对称的。问题解决:我的想法是这样的,分别用两个指针指向根节点,假设这两个指针为p和q,然后每一次比较p的左子树和q的右子树,p的右子树和q的左子树,这是递归的部分,边界条件则为叶子节点。class Solution {public: bool isSymmetric(TreeNode* root) { ...

2018-09-18 22:33:47 167

原创 Leetcode Problem226

Invert Binary Tree问题描述:翻转一棵二叉树。exampleinput:4/ 2 7/ \ / 1 3 6 9output:4/ 7 2/ \ / 9 6 3 1问题解决:将每个节点的左右子树翻转即可,如果遇到叶子节点,则直接返回该节点。class Solution {public: Tree...

2018-09-18 22:10:05 88

原创 Leetcode Problem112

Path Sum问题描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。问题解决:这道题跟上一道有异曲同工之妙,都是要找出从根节点到叶子节点的路径,只不过前一道题是为了找出所有路径中的最小值,这一道题是要找到某条路径上所有节点值相加等于目标和。class Solution {public: bool hasPathSum(...

2018-09-17 18:54:59 116

原创 Leetcode Problem111

Minimum Depth of Binary Tree问题描述:给定一个二叉树,找出其最小深度。其中最小深度是从根节点到最近叶子节点的最短路径上的节点数量。问题解决:起初我想的是将求树的深度的max改成min就可以解决了,结果不是,因为如果存在一个节点只有一个子节点的话,返回结果就错误了,因为此时的“最小值”不是从根节点到叶子节点的深度。所以后来我想的是找出从根节点到每个叶子节点的路径长...

2018-09-17 17:04:58 180

原创 Leetcode Problem110

Balanced Binary Tree问题描述:给定一个二叉树,判断它是否是平衡二叉树。问题解决:平衡二叉树的定义是对于一棵二叉树,它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。这个定义的描述很容易联想到递归。class Solution {public: bool isBalanced(TreeNode* root) { ...

2018-09-17 16:20:29 85

原创 Leetcode Problem107

Binary Tree Level Order Traversal II问题描述:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 3 / \9 20 / \ 15 7返回:[ [15,7], [9,20], [3] ]问题解决:层次遍历问题一般都可...

2018-09-17 16:04:14 92

原创 Leetcode Problem100

Same Tree问题描述:判断两颗二叉树是否是相同的树,即树的结构必须一致,对应节点的值相同。问题解决:一般来说树的问题用递归很容易解决,我们同时遍历两棵树,从两棵树的根节点开始,若当前节点有一个为空,那么两棵树的结构不一致,不是相同的树,如果两个节点不为空且两个节点的值不一样,那也不是相同的树,如果两个节点均为空,代表它们的父节点为叶子节点,往上回溯,如果两个节点不为空且节点的值相同,...

2018-09-17 14:32:35 90

原创 算法设计与分析——动态规划

这几天在leetcode上刷了不少动态规划的题,在这里来总结一下。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到更加快速的解法。一. 动态规划的...

2018-09-15 11:43:01 524

原创 Leetcode Problem746

Min Cost Climbing Stairs问题描述:数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。example 1Input...

2018-09-15 11:24:41 99

原创 Leetcode Problem303

Range Sum Query - Immutable问题描述:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。问题解决:这本身是一道很容易的问题,就只是用一个for循环就能解决的问题。但是其实题目还要求我们初始化这个类,如果按照原来的数组储存起来,再去计算 i 到 j 范围内元素的总和,就有点浪费时间了。其实,我们在存...

2018-09-14 16:48:04 141

原创 Leetcode Problem43

Multiply Strings问题描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。问题解决:首先我想到的是用最基本的方法来做,即像人工做算术题一样。比如说25*25,那我们首先计算25*5,将得到的值存储在tmp里面(如果该值大于等于10,则保留其个位数,进位由jw来保存)。res在相应的位置上加上tm...

2018-09-13 18:20:15 92

原创 Leetcode Problem198

House Robber问题描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。问题解决:这种题一开始还是想用递归来做,设置一个函数which(nums...

2018-09-12 20:31:38 93

原创 Leetcode Problem55

Jump Game问题描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。example1:Input: [2,3,1,1,4]Output: trueExplanation: Jump 1 step from index 0 to 1, then 3 steps to the last i...

2018-09-11 21:19:34 86

原创 Leetcode Problem122

Best Time to Buy and Sell Stock II问题描述:这一题跟上一道题Best Time to Buy and Sell Stock很像,只是这道题允许多次买卖股票,但值得注意的是,你不能同时参与多笔交易,即必须在再次购买前出售掉之前的股票。example1:Input: [7,1,5,3,6,4]Output: 7Explanation: Buy o...

2018-09-11 20:17:53 106

原创 算法设计与分析——分治术与递归(一)

一. 定义直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。...

2018-09-10 20:35:29 1322

原创 Leetcode Problem121

Best Time to Buy and Sell Stock问题描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。问题解决:暴力搜索,找出最大利润。class Solution {public: int maxProfit...

2018-09-10 19:09:31 91

原创 Leetcode Problem53

Maximum Subarray问题描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。问题解决:假设cur为数组中以a[i-1]结尾的当前最大字段和,sum为数组中已知的最大字段和,当搜索到数组中最后一个元素时,便可以知道数组的最大字段和。这也是典型的动态规划问题。动态规划的主要思想就是把大问题划分为小问题,通过求解小问题来逐渐...

2018-09-10 17:07:14 80

原创 Leetcode Problem139

Word Break问题描述:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。拆分时可以重复使用字典中的单词,并假设字典中没有重复的单词。问题解决:一开始我打算用BFS来做,先找出字典中的第一个能够与字符串s的子串匹配的单词,然后用递归继续找出剩余字串与字典的匹配串,但是这样有一个问题就是如果有多个匹配然后...

2018-09-09 16:20:54 119

原创 vector容器用法(二)

删除指定位置的元素vector<int> a(3,6); //初始化了3个值为6的元素a.erase(a.begin()+0); //删除第一个元素值得注意的是erase的参数为指向相应元素的迭代器,不能是其他类型的数,删除后,后面的元素会替代上去,所以vector也会相应地改变。string也有erase这个函数,效果也差不多。string str="Hel...

2018-09-06 20:52:52 139

原创 Leetcode Problem563

Binary Tree Tilt问题描述:给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的节点之和和右子树节点之和的差的绝对值。空节点的坡度是0。整个树的坡度就是其所有节点的坡度之和。问题解决:问题所要求的是整个树所有节点的坡度之和,而坡度等于节点左子树的节点之和右子树节点之和的差的绝对值,所以我们要必须计算出所有节点的坡度。这种二叉树问题很...

2018-09-05 20:41:59 95

原创 Leetcode Problem147

Insertion Sort List问题描述:使用插入排序对链表进行排序。 问题解决:简单的插入排序方法。class Solution {public: ListNode* insertionSortList(ListNode* head) { ListNode *add=new ListNode(0); add->next=he...

2018-09-04 20:26:02 109

原创 Leetcode Problem143

Reorder List问题描述:给定单链表L:L 0 → L 1 →…→ L n -1 → L n,将其重新排序为:L 0 → L n → L 1 → L n -1 → L 2 → L n -2 →…问题解决:思路很简单,用一个栈将所有节点储存起来,并记录链表的长度n。然后将pop栈顶,放在L0后面,以此类推,总共做了n/2次(即前半部分与后半部分)。但是这样跑出来的结果TLE。看到了别...

2018-09-04 13:23:31 125

原创 Leetcode Problem86

Partition List问题描述:给定一个链表和一个数x,对其进行分区,使得小于x的所有节点都在大于或等于x的节点之前。问题解决:这道题耗费了我一个半小时的时间。(好惨!!!)原来的思路是将小于x的节点组成一个链表,最后再拼接上剩余的节点,但是居然x可以不存在链表中,然后就一直过不了。后来看了网上别人的解法才知道怎么解决。首先设置一个辅助节点放在头节点前面(这一步很关键),然后找到第一...

2018-09-03 21:17:59 81

数字图像处理维纳滤波的matlab实现

数字图像处理第五章维纳滤波的matlab实现

2017-05-03

遗传算法调整PID参数的matlab实现

遗传算法调整PID参数的matlab实现

2017-04-24

空空如也

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

TA关注的人

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