自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 leetcode——三角形最小路径和(动态规划)

题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用 O(n)的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。自上而下...

2020-07-14 20:18:09 135

转载 使用git log命令时,commit log内容显示为中文乱码

后台使用git log命令时,commit log内容显示为中文乱码: 使用 git config --global i18n.logoutputencoding gbk  将输出按GBK编码显示。设置中文字符集LANG="zh_CN.GB18030" ;export LANG 再使用git log 命令 ...

2020-07-13 16:04:37 386

原创 leetCode——恢复空格

题目描述哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboot"。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。注意:本题相对原题.

2020-07-13 15:12:13 164

原创 数据结构——快速排序

快速排序 同样是分治的思想首先以数组的第一个元素作为基准元素,找到它在数组中的正确位置,然后以此为基准,将数组分为两个部分,然后重复上述步骤,直到将数组划分为单个的元素。这时每个元素都以找到其正确的位置。找到基准元素的正确位置的方法:使用tmp将基准元素保存下来,然后使用low,high两个指针分别指向数组的开始和结尾。首先从high 开始遍历,如果当前元素的值比基准元素大,那么high左移,即high = high - 1,直到找到一个元素的值比tmp小的值,将arr[high]的值赋给arr.

2020-07-13 15:07:25 129

原创 leetCode——不同路径||

题目描述 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。示例1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:3x3 网格的正...

2020-07-06 21:27:19 80

原创 数据结构——归并排序

归并排序,分为两个步骤:第一个步骤是“分”,将需排序的数组进行2路划分,直到划分为一个个有序的子数组,然后进行两两合并。第二个步骤就是“治”,也就是进行合并,合并过程为对两个子数组的每一个元素进行比较,较小的元素在前,直到遍历完两个子数组。2-路合并def merge(arr, low, mid, high): arr_copy = arr[:] i, j = low, mid + 1 k = i while i <= mid and j <= h.

2020-07-04 22:01:12 120

原创 leetCode——长度最小的字数组

题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。方法1:暴力解决这个问题,从窗口大小为1开始遍历数组,如找到一个子数组大于给.

2020-06-28 19:35:23 164

原创 leetCode——缺失的第一个正数

题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。第一个困难的题目,困难的地方在于时间复杂度为O(n),空间复杂度为0(1)题目给的提示:Remember that O(2n) = O(n)方法1:所以我们可以先排序,升序排序,然...

2020-06-27 19:11:03 171

原创 leetCode——单词拆分

题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", wordD..

2020-06-25 18:52:24 122

原创 leetCode——二进制求和

题目描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。方法1 将字符串转成数组在翻转,按二进制加法进行计算,将结果保存...

2020-06-23 19:07:11 108

原创 leetCode——两数相加||

题目描述给你两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7方法1: 沿用上个题的思路,每一位进行相加,不过需要先..

2020-06-22 22:42:52 94

原创 leetCode——两数相加

题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:最开始的思路有点复杂,发现考虑不周全,还是简单说一下吧,首先..

2020-06-21 21:03:09 84

原创 leetCode——两数之和_升序数组

升序数组的两数之和题目描述给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 i...

2020-06-20 21:51:57 504

原创 leetCode —— 两数之和

整体思路还是较为简单的,遍历数组,通过给定的target减去遍历的值得到一个差,然后再去数组里寻找这个差,找到则成功,没有找到就继续遍历。这里的重点是如何寻找这个差方法2是再次遍历数组方法3是先转换成字典,也可以理解是hashmap,然后再进行上述过程,由于hashmap查找的效率无限接近与O(1),所以耗时短方法4是在第三种方法的基础上不需要再对整个dict进行寻找,再加入一个新的键值对之前,判断是否满足条件,满足之后就直接返回,不满足就继续这样,这个题其实是考察耗时最短的查找方法暴力.

2020-06-18 21:53:17 82

原创 D3.V4——sankey(桑基图)

绘制简单的sankey。思路很简单,定义好布局直接绘制就行。D3.v4官方没有提供sankey的布局方式。布局方式的定义使用的是现成的,直接调用就行。数据:var data = { 'nodes': [{ name: "0" }, { name: "1" }, { name: "2" }, { name: "3" }, { name: "4" }, { name: "5" }, { name: "6"

2020-06-15 09:34:21 1078 3

原创 D3.V4(二)——气泡图

绘制气泡图就很简单了,D3提供了布局算法,只需要将数据输入进去,得到气泡的位置,再进行绘制就行了。数据{ "children": [{ "name": "D3.js", "weight": 100 }, { "name": "Echarts.js", "weight": 77 }, { "name": "Ja

2020-05-16 16:05:15 920

原创 D3.V4(一)——可伸缩树图

D3.js绘制可伸缩树图步骤:1. 定义树图布局方式let tree = d3.tree() .size([height, width]);2. 对原始数据进行处理这里对根节点的位置进行了调整,heat_padding是图与边框的距离let tree = d3.tree() .size([height, width]); let root = d3.hierarchy(treeData, function (d) { return d

2020-05-16 12:19:01 857

原创 最优化——线搜索-斐波那契数列法

斐波那契数列法斐波那契数列法与二分法相比没有太大的区别,只是nuk与lambdak的更新方式不一样,如下。其中F为斐波那契数列,k为迭代次数,n为数组大小。Python代码:def FibonacciArray(size): fibonacciArray = [1,1] for i in range(2,size): fibonacciArray.ap...

2020-01-09 21:35:12 780

原创 最优化——线搜索-二分法

一.BisectionMethod(二分法)二分法是最为简单的线搜索方法,其主要思想是在给定范围内取中点,在给定的足够小的值eta左右偏移并计算如果然后更新搜索范围。流程图Python 代码:def bisection(a0,b0): epsilon = 0.0001 eta = 0.00001 ak = a0 bk = b0 m...

2020-01-09 21:08:16 1184

d3.v4-sanKey.js

d3.v4-sanKey布局,非原创

2020-06-07

VS2013专业版

VS2013专业版下载。

2018-06-14

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

TA关注的人

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