自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (12)
  • 收藏
  • 关注

原创 leetcode 92 反转链表Ⅱ

这道题是我小米面试时手撕的一道题,当时没撕出来QAQ,太惨了,只能下定决心好好搞算法,面试官还问我怎么没刷到这个题。。。。我是真没刷到这道题,反转单链表倒是熟的不行。反转链表真的是高频考点,得好好看各种变种题。反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL解题

2020-10-17 21:12:54 204

原创 leetcode 旋转数组的最小数字

leetcode 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0解题思路:采用二分法的思想,与二分法不同的地方在于,将数组旋转过后,在数组中一定能找到一个最小数字。当取left == 0,right ==

2020-09-01 10:32:05 197

原创 leetcode102 二叉树的层序遍历

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000代码实现:#define INT_MAX 1010int* levelOrder(struct TreeNode* root, int* returnSize) { if (root == NULL) {

2020-07-30 13:25:17 186

原创 leetcode 机器人的运动范围

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m = 3

2020-07-27 16:24:31 193

原创 leetcode 买卖股票的最佳时机(6种不同的股票交易题)

​ 本文所记录的是最近刷的关于股票交易的算法题,个人认为是学习动态规划比较好的一系列题目,将这个系列的题目做几遍,能够比较好的入门动态规划,根据动态规划的三部曲:状态定义、转移方程、边界条件三个步骤,依次解题,明显感觉对动态规划的认识清晰了不少,特此记录。买卖股票的最佳时机最佳买卖股票时机含冷冻期买卖股票的最佳时机含手续费、买卖股票的最佳时机 II买卖股票的最佳时机 III买卖股票的最佳时机 IV121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格

2020-07-26 11:06:05 257

原创 最全的排序算法原理以及代码实现

排序算法的实现过程序言:最近复习了各种排序算法,由于面试对于排序算法考的比较频繁,并且在刷题过程中遇到了各种各样的排序题目,但往往都万变不离其宗,因此,专门总结了各种排序算法及其实现方法,用C语言实现了其基本原理。本文所涉及到的算法主要有:冒泡排序选择排序插入排序希尔排序归并排序快速排序快速选择堆排序1.冒泡排序运行步骤:比较相邻的两个元素,如果前一个比后一个大,则调换两个元素。依次类推,对每一对相邻的元素做相同的操作,可以得到数组末尾存放最大的元素。针对所有元素重复第

2020-07-12 21:49:53 177 1

原创 leetcode 206 反转链表(迭代和递归)

题干:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解题思路:反转链表是一道非常经典的题,值得把它弄明白,温故而知新。1.三指针法图片来源2.递归法:实现过程:reverseList: head=1 reverseList: head=2 reverseList: he

2020-07-06 18:02:15 113

原创 leetcode 198 / 213 打家劫舍 / 打家劫舍II

题干1:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。 示

2020-07-06 15:26:17 102

原创 leetcode 64 最小路径和

题干:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解题思路:| 1 | 2 || 3 | 4 |以该矩阵为例,若想知道该矩阵到4的最小路径,其实只需要对比2,3哪个更小即可,选择小的那边,因此可以使用动态规划。动态规划的三步:1.状态定义:假

2020-07-03 17:45:00 1982

原创 leetcode 200 岛屿数量

题干:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。解题思路:1.遍历数组,寻找起始点2.深度优先搜索向四周搜

2020-07-03 15:59:37 114

原创 leetcode 695 岛屿的最大面积

题干:给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0]

2020-07-03 15:21:16 123

原创 leetcode 127 单词接龙

给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入:beginWord = "hit",endWord =

2020-06-30 17:46:52 1832

原创 leetcode 279 完全平方数

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解题思路:典型的广度优先搜索,先确定0,向下搜索两者之和小于等于n的完全平方数,找到符合条件的完全平方数,再依次遍历该层所有符合条件的数,依次向下搜索和小于等于n的完全平方数,直到找到和等于n,返回最少值。

2020-06-30 16:53:03 2332

原创 leetocde 233 剑指offer 面试题43. 1~n整数中1出现的次数

题干:输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n < 2^31解题思路:重点在于如何判断每一位上1出现的次数与他所在位的数学关系,可以理解为,假设有一个数n = 28032,设cur = 0是n的百位,digtal = 100,将n分成a = 281, b = 32,

2020-06-18 22:26:11 105

原创 leetcode102 剑指offer 面试题32 - II. 从上到下打印二叉树 II

题干:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果:[ [3], [9,20], [15,7]]提示:节点总数 <= 1000解题思路:核心步骤和之前的面试题31差不多,不同的地方在于,打印方式是一个二维数组,且每行的长度不同,用c语言比较难以处理,要不断的赋值和

2020-06-15 19:50:36 180

原创 剑指offer 面试题32 - I. 从上到下打印二叉树

题干:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回:[3,9,20,15,7]提示:节点总数 <= 1000解题思路:一层一层打印,这样的题目是典型的广度优先搜索的题目。两种方法:1.由于C语言中没用队列操作函数,需要自己写一个队列函数,用两个栈实现队列先进先出的特性,基本等于从零开始,用这种方法相

2020-06-15 19:09:05 166

原创 leetcode 79 剑指offer 面试题12. 矩阵中的路径

题干:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一

2020-06-07 19:50:32 157

原创 leetcode 剑指offer 面试题09. 用两个栈实现队列

题干:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )。示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTai

2020-06-07 19:25:45 176

原创 leetcode 剑指offer 面试题68 - II. 二叉树的最近公共祖先

题干:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5

2020-06-04 20:08:54 169

原创 leetcode 剑指offer 面试题38. 字符串的排列

题干:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8解题思路:本身是一个全排列的问题,字符型全排列较之数字型全排列稍微有些麻烦,但是基本思路一致,采用回溯思想,将每个数字分别放到第一位,并将后面的数字进行全排列。需要注意的是,如果输入abb类型的字符,全排列会出现重复,去

2020-06-04 19:57:06 204 1

原创 leetcode 剑指offer 面试题07. 重建二叉树

题干:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7限制:0 <= 节点个数 <= 5000解题思路:需要理解前序遍历、中序遍历、后序遍历的排列方法。通过前序遍历头节点一定是根节点,搜索中序遍

2020-06-04 18:14:31 176

原创 leetcode剑指offer 面试题60. n个骰子的点数

题干:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111

2020-06-02 18:16:47 200

原创 leetcode 剑指offer 面试题61. 扑克牌中的顺子

题干:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True 示例 2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5 ;数组的数取值为 [0, 13] ;解题思路:本题的解题重点在于,除去大小王可看作任意数外,其他的数中,最大值减去最小值应当小于5,即max - min &l

2020-06-02 17:47:23 134

原创 leetcode 剑指offer 面试题59 - I. 滑动窗口的最大值

题干:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3

2020-06-01 19:59:57 282

原创 leetcode 剑指offer面试题58 - I. 翻转单词顺序

题干:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a

2020-05-31 22:08:04 125

原创 leetcode 剑指offer面试题40. 最小的k个数

题干:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000解题方法:1.快速排序:将给出的数组由小到大排

2020-05-29 22:24:55 144

原创 leetcode剑指offer面试题55 - I. 二叉树的深度

题干:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题方法:1.广度优先搜索:解答树上结点的扩展是按它们在树中的层次进行的。首先生成第一层结点,同时检查目标结点是否在所生成的结点中,如果不在,则将所有的第一层结点逐一扩展,得到第二层结点,并检

2020-05-29 15:23:42 149

原创 leetcode 剑指offer面试题06,从头到尾打印链表

leetcode 剑指offer面试题06,从头到尾打印链表题干:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]解题思路:两种方法1.对链表进行反转,然后输出数据2.先求出链表的长度,然后将数据写入数组中,倒序打印数组。反转链表的方法:参考(https://blog.csdn.net/qq_42351880/article/details/88637387) //反转数组int* reversePrint(st

2020-05-29 15:01:01 175

多种soucrce insight配色方案.zip

由于工作需要使用source insight,故整理了一些网上的配色方案,免除了一个一个下的烦恼,下载后直接load即可使用,都是xml文件。包括atom、sublime、vscode、source code pro等

2021-04-16

Mathematical-Modeling.zip

ARMA预测建模,自回归滑动平均模型(英语:Autoregressive moving average model,简称:ARMA模型)。是研究时间序列的重要方法,由自回归模型(简称AR模型)与移动平均模型(简称MA模型)为基础“混合”构成。在市场研究中常用于长期追踪资料的研究,如:Panel研究中,用于消费行为模式变迁研究;在零售研究中,用于具有季节变动特征的销售量、市场规模的预测等。

2020-03-21

ARMATEST.zip

自回归滑动平均模型(英语:Autoregressive moving average model,简称:ARMA模型)。是研究时间序列的重要方法,由自回归模型(简称AR模型)与移动平均模型(简称MA模型)为基础“混合”构成。在市场研究中常用于长期追踪资料的研究,如:Panel研究中,用于消费行为模式变迁研究;在零售研究中,用于具有季节变动特征的销售量、市场规模的预测等。

2020-03-21

集体智慧编程源代码以及书中所需要用到的pydelicious库文件和feedpaser运行工具.zip

集体智慧编程源代码以及书中所需要用到的pydelicious库文件和feedpaser运行工具,可按照此博客的步骤进行操作https://blog.csdn.net/wuchenhaaa/article/details/80526394?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2020-03-01

屏幕截图(FastStone Capture)

各种方式的截图,十分便捷,可截长图,体积小,融合度高,自带图片编辑器,也可设置外部编辑器打开。截好的图可直接发送至word文档

2019-12-25

EMD分解小波去噪.zip

提供了自己编写的EMD分解小波去噪程序,采用ECG信号,给出了几种小波去噪方法。提供了EMD分解滤波的原理

2019-12-24

3D变换图像去噪,当今最好的传统图像去噪算法

BM3D算是NLM(non-local mean)的升级版本,因为它主要用到了非局部块匹配的思想,首先找相似块,不同于传统NLM使用L2距离,它用了硬阈值线性变换降低了L2距离的复杂度;找到相似块后,NLM是做一个均值处理,而BM3D则是将相似块域转换,提出Collaborative filtering降低相似块自身含有的噪声(NLM做均值,引入了相似块的噪声),并在aggregation处对相似块加权处理,得到降噪后的目标块。

2019-12-24

粒子群算法,PSO优化算法

提供一个自用的粒子群算法和例子,希望能有所帮助。粒子群优化算法(Partical Swarm Optimization PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。由于PSO操作简单、收敛速度快,因此在函数优化、 图像处理、大地测量等众多领域都得到了广泛的应用。 随着应用范围的扩大,PSO算法存在早熟收敛、维数灾难、易于陷入局部极值等问题需要解决,主要有以下几种发展方向。

2019-12-24

去趋势波动分析matlab算法

自用的DFA算法,需自设参数,用于数据处理,信号处理,机器学习等方面。全称:Detrended Fluctuation Analysis,DFA,DFA是1994年由Peng等基于DNA机理提出的标度指数计算方法,用于分析时间序列的长程相关性。 DFA 方法的一个优点是它可以有效地滤去序列中的各阶趋势成分, 能检测含有噪声且叠加有多项式趋势信号的长程相关, 适合非平稳时间序列的长程幂律相关分析

2019-12-10

分享一个自己常用的小模块

分享一个自己常用的封装库,里面都是一些常用的封装,有PCB,有封装,有原理图

2019-07-24

分享一个自己常用的封装库,PCB封装库可下载

分享一个自己常用的封装库,里面都是一些常用的封装,可下载

2019-07-24

USB模块的封装可以自行下载

提供一个自用的USB模块的封装,可以自行下载使用~~~~~~

2019-07-24

空空如也

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

TA关注的人

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