- 博客(45)
- 收藏
- 关注
原创 饭后小甜点leetcode——字符串模式匹配与表达式解析
文章目录模式匹配正则表达式匹配通配符匹配表达式解析字符串转换整数 (atoi)基本计算器基本计算器 II基本计算器 III逆波兰表达式求值为运算表达式设计优先级给表达式添加运算符三元表达式解析器删除注释迷你语法分析器Lisp 语法解析原子的数量模式匹配正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘...
2019-08-24 17:16:01
786
原创 饭后小甜点leetcode——分治算法
文章目录归并寻找两个有序数组的中位数合并K个排序链表快排数组中的第K个最大元素最接近原点的 K 个点归并寻找两个有序数组的中位数public class Solution { public double FindMedianSortedArrays(int[] nums1, int[] nums2) { var m = nums1.Length; va...
2019-08-07 08:38:40
262
原创 leetcode——划分DP系列
文章目录完全平方数分割回文串 II分割回文串完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.链接:https://leetcode-c...
2019-08-07 00:38:18
231
原创 leetcode——双序列DP系列
文章目录最长公共子序列交错字符串编辑距离最长公共子序列leetcode好像没有这个题,取lintcode找了一个,结果不能用C#。。。于是写出了时隔N年的第一段Java代码。。public int longestCommonSubsequence(String A, String B) { // write your code here int m = A.length();...
2019-08-07 00:28:53
264
原创 leetcode——博弈类DP
文章目录Nim 游戏预测赢家Nim 游戏你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走...
2019-08-06 18:13:16
772
原创 leetcode——区间类DP
文章目录最长回文子序列最长回文串最长回文子串回文子串最长回文子序列dp[i][j]={dp[i+1][j−1]+2, S[i]==S[j] max{dp[i+1][j],dp[i,j−1]}, S[i]!=S[j] dp[i][j]= \begin{cases} dp[i+1][j-1]+2,\ S[i]==S[j]\\ \ max\{dp...
2019-08-06 18:11:56
635
原创 leetcode——序列类DP
文章目录House robber打家劫舍(一排房子)打家劫舍(一圈房子)打家劫舍(二叉树型房子分布)Paint house粉刷房子(三种颜色)粉刷房子(k种颜色)Decode way解码方法(只有1-9)解码方法(还有通配符*号)最长连续递增序列(连续)LIS最长上升子序列(可以不连续)俄罗斯套娃信封问题(类LIS)比特位计数(bit+dp)序列型dp问题关键在于,dp[i]表示前i个item的...
2019-08-06 13:51:32
376
原创 leetcode——卖股票系列
只能交易一次121. Best Time to Buy and Sell Stockpublic int MaxProfit(int[] prices){ if (prices == null || prices.Length == 0) { return 0; } var b = prices[0]; var maxSoFar = 0...
2019-08-06 10:59:29
2218
原创 leetcode——网格DP系列
不同路径【题目】一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?【说明】m 和 n 的值均不超过 100。【链接】https://leetcode-cn.com/pr...
2019-08-06 10:51:20
794
原创 饭后小甜点leetcode——k数之和系列
文章目录两数之和两数之和两数之和 II - 输入有序数组两数之和 III - 数据结构设计两数之和 IV - 输入 BST小于 K 的两数之和三数之和三数之和较小的三数之和最接近的三数之和四数之和四数之和N数之和和为k的子数组连续的子数组和和可被 K 整除的子数组乘积小于K的子数组两数之和两数之和leetcode题目链接【知识点】:HashTable【思路】:从左向右扫描nums数组,每...
2019-07-21 21:57:23
1100
2
原创 leetcode——背包系列
文章目录01背包零钱兑换(每种硬币只有一个)完全背包问题零钱兑换II(每种硬币无限个)组合总和IV本来背包问题,比较直观的解释,是用二维的转移方程,但简洁起见,很多地方以及下文的介绍都是用一维的转移方程,在二维到一维的转换中要注意,01背包和完全背包的计算顺序,01背包的dp数组是从后向前计算更新,完全背包的dp数组是从w[i]开始向后更新。要想理解计算顺序的不同,先看一下二维的转移方程是什么...
2019-07-20 23:59:00
2726
1
原创 饭后小甜点leetcode——子数组系列
文章目录求最大/小子数组和/积求最大子数组和求最大子数组乘积用滑动窗口求和为k的子数组在数组这儿的题中,发现有很多很多题都跟子数组有关,现总结一下子数组相关题型。求最大/小子数组和/积这种题一般用DP解决比较方便,dp数组中保存以i为结尾的子数组的和/积求最大子数组和leetcode题目地址很基础的DPpublic int MaxSubArray(int[] nums){ ...
2019-07-20 18:37:47
153
原创 饭后小甜点leetcode——滑动窗口
文章目录求定长平均值最大的子数组简介滑动窗口是一种比喻的说法,就是在数组中,定长子数组不断向后更新,对于每个i开头的窗口,它的最后一个元素是i+k-1,其中k是窗口大小,也就是子数组长度,每次从i-1到i的更新,就是把i+k-1加入到窗口中,把i-1从窗口中移除,如下图所示。下面总结了一下滑动窗口常见的题型。求定长平均值最大的子数组//滑动窗口public double FindMa...
2019-07-20 15:23:36
144
原创 饭后小甜点leetcode——恢复二叉树
有一种题,需要在遍历二叉树的时候,keep一个last指针,始终指向上一个遍历到的节点。恢复二叉树恢复二叉搜索树【思路】二叉搜索树在中序遍历的时候,得到的list应该如图中粉色点点那样递增,但如果其中有两个节点被放错地方了,则这两个节点则会像绿色点点一样,所以在第一次发现last节点比current节点大的时候,如果first节点还没有赋值过,则说明是图中第一个圈中的情况,然后把last...
2019-07-07 18:41:31
297
原创 饭后小甜点leetcode——前缀树及其应用
前缀树前缀树的实现leetcode题目地址用数组实现public class Trie{ class TrieNode { public bool IsWord { get; set; } public TrieNode[] Children = new TrieNode[26]; } private TrieNode r...
2019-06-26 13:20:53
214
原创 饭后小甜点leetcode——数组中的算法
文章目录数组1. Remove掉符合条件的值移动零移除元素删除排序数组中的重复项(不允许任何重复)删除排序数组中的重复项(允许最多重复两遍)2. 数组中应用三路归并,快排,归排思想Color Sort无序数组(一维)中的第k大合并两个有序数组3. 数组与数学运算大数运算求统计量数组1. Remove掉符合条件的值这种题都是一个思路,一边遍历,一边用一个指针,指向满足要求的子数组的末尾移动零...
2019-06-26 00:02:44
210
原创 饭后小甜点leetcode——桶排序的应用
桶排序的应用前K个高频元素leetcode题目地址public IList<int> TopKFrequent(int[] nums, int k){ var res = new List<int>(); var dict = new Dictionary<int, int>(); var bucket = new List<...
2019-06-25 23:55:38
267
原创 饭后小甜点leetcode——字符串中的算法
字符串和数组其实不分家的,很多算法都是需要相互转换或者是通用的,下面总结一些常见的字符串算法题型。字符串翻转翻转整个字符串344. 反转字符串【思路】两头逼近public void ReverseString(char[] s){ var i = 0; var j = s.Length - 1; while (i < j) { var te...
2019-06-24 23:55:54
166
原创 饭后小甜点leetcode——图的遍历
图的遍历一般有两种,DFS(深度优先搜索)和BFS(广度优先搜索),这两种基础的遍历上可以衍生出很多算法问题。DFS求无向图连通分量323. 无向图中连通分量的数目这道题就是DFS一个很基础的应用,求连通分量的个数,每轮dfs完了以后,该轮遍历到的节点都会被标为已访问,标不成的说明跟这个节点不连通,所以每轮dfs完成后,连通分量的count就可以加一了。【易错点】一个是建立邻接表的时...
2019-06-23 23:50:17
628
原创 饭后小甜点leetcode——并查集
并查集概述并查集是一种用在图论中的数据结构,最主要的功能就是:查看两点是否相连。O(1)复杂度。就是看一下这两个节点的祖宗节点是不是同一个。合并两个点所在集合。O(logn)复杂度。就是让一个集合的祖宗节点成为另一个集合祖宗节点的父亲节点实现需要一个parent数组,记录每个节点的父亲节点可以加上路径压缩,也就是在find祖宗的时候顺路把祖宗变父亲节点,这样可以让树的层数减少,...
2019-06-23 23:23:21
136
原创 饭后小甜点leetcode——通过前中后序遍历中的两种构造二叉树
文章目录普通二叉树前序+中序中序+后序前序+后序BST这个系列总结一下,给定前/中/后序遍历其中两个遍历的结果,要求构造出原二叉树,这种题。主要思路是用递归+分治普通二叉树前序+中序leetcode题目地址有以下两种方法传递inOrder的左右边界和preOrder的offset。offset是指从preOrder获取到的当前子树的根的下标(preOrder是先遍历根节点,所以对于...
2019-06-22 00:36:32
120
原创 C# 泛型的类型转换
有时候,我们需要在类中使用泛型,需要计算的时候,也是可以进行类型转换的。以下举个例子来说明一下转换过程。var converter = TypeDescriptor.GetConverter(typeof(TWeight));先用上述语句得到一个converter。var value = 0.0;foreach (var edge in Edges){ //这里的edge是一...
2019-06-16 13:58:04
8806
原创 饭后小甜点leetcode——动态规划
Dynamic ProgrammingProblem Summary最大连续子序列和dp[i]dp[i]dp[i]表示以A[i]A[i]A[i]作为末尾的连续序列的最大和dp[i]=max{A[i],dp[i−1]+A[i]} dp[i] = max\{A[i], dp[i-1]+A[i]\} dp[i]=max{A[i],dp[i−1]+A[i]}边界dp[0]=A[0] dp[0...
2019-05-06 23:20:34
166
原创 饭后小甜点leetcode——二叉树
目录饭后小甜点leetcode——二叉树二叉搜索树98. Validate Binary Search Tree思路1思路2思路3饭后小甜点leetcode——二叉树二叉搜索树持续更新。。。98. Validate Binary Search TreeGiven a binary tree, determine if it is a valid binary search tree (B...
2018-11-05 23:30:07
149
原创 饭后小甜点leetcode——哈希表
目录饭后小甜点leetcode——哈希表242. Valid Anagram饭后小甜点leetcode——哈希表持续更新中。。。242. Valid AnagramGiven two strings s and t , write a function to determine if t is an anagram of s.Example 1:Input: s = “anagra...
2018-10-28 22:55:14
169
原创 饭后小甜点leetcode——堆
目录饭后小甜点leetcode——堆703. Kth Largest Element in a Stream饭后小甜点leetcode——堆持续更新。。。703. Kth Largest Element in a StreamDesign a class to find the kth largest element in a stream. Note that it is the kth...
2018-10-21 23:08:17
337
原创 C#牛客网刷题常见报错指南
报错:string input format什么什么的不对 可能原因: 1. int.Parse函数内的是一整行字符串。牛客网经常在给的栗子里输入是一行一行的,事实上测例是一整行用空格隔开,所以需要根据测例进行Split等操作。 2. int.Parse函数内的字符串无法解析为数字,如果在测例中有空字符串,而不是以空字符串作为结尾标志的情况下,试用一下tryParse。报错:您的输出为空...
2018-09-09 19:16:43
1795
原创 饭后小甜点leetcode——回溯
基础版全排列:leetcode对应题目网址: https://leetcode.com/problems/permutations/description/代码:public class Solution { public IList&lt;IList&lt;int&gt;&gt; Result = new List&lt;IList&lt;int&gt;&g
2018-08-29 20:51:07
161
原创 剑指offer——按之字形顺序打印二叉树
牛客网地址: https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0?tpId=13&tqId=11212&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 对应le...
2018-08-29 20:33:42
96
原创 c#二维数组的写法辨析
1.double[][]这种数组是数组的数组,而且每一行可以有长度不一样的数组,看使得起来是锯齿形的,可以通过给某一行赋值一个数组来进行数组数据的改变。double[][] x = new double[5][];x[0] = new double[10];x[1] = new double[5];x[2] = new double[3];x[3] = new doubl...
2018-08-10 13:06:41
457
原创 c#循环输入的几种解决方案
刷题的时候总会遇到那种多个测例,需要循环输入,现总结几种常用并简洁优(cu)雅(bao)的方法。 1.适合空白字符输入后进行操作会报错的,比如有string转int操作的namespace Test{ class Program { static void Main(string[] args) { while (tr...
2018-08-09 17:00:36
4091
1
原创 C# Hash字符串
C# Hash字符串public static byte[] GetHash(string inputString){ HashAlgorithm algorithm = MD5.Create(); //or use SHA256.Create(); return algorithm.ComputeHash(Encoding.UTF8.GetBytes(input...
2018-08-09 16:39:52
3892
原创 js中的location对象
hash 返回URL中锚部分,即#以及#之后的部分host 返回主机名以及端口hostname 返回主机名href 返回完整的URLpathname 返回URL路径名,即主机名后第一个斜杠及其以后部分port 返回端口protocol 返回URL使用的协议(如https:)search 返回查询部分,即问号及其以后部分附上关于hash的一个小栗子<html><head>...
2018-04-07 20:58:43
274
原创 css中各种单位总结
主要参考来源:http://www.runoob.com/cssref/css-units.html绝对单位:相对单位:根据上面的图表写了一段代码测试了一下效果,代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>css单位</title>&a
2018-04-03 21:58:53
180
原创 git不完全精简版常用命令总结
git不完全精简版常用命令总结1.最常用的命令没有之一,查看当前branch与修改了哪些文件,每次要对代码干点啥的时候最好执行一下这个命令看看你在哪个 branch上:git status2.如果需要从master上新开一个branch(从其他地方新开同理)git checkout mastergit checkout -b 这儿放新branch的名字(example. gi...
2018-03-28 23:07:42
257
原创 Angular中的select
angular中的select我们经常会遇到通过select来进行选择的情况,需要向select的option中传递值,也需要从当前选中的option中获取值,本文将简介这一过程。<div class="row"> <div class="col-sm-2"> <form class="form-horizontal" role=".
2018-03-28 22:35:25
1344
原创 使用C#将JSON转化为class
使用C#将JSON转化为class要想将JSON转化成class,首先要观察一下JSON文件,然后自定义一个和JSON格式一样的类,比如,JSON文件是这样的:{ "@name":"Alice", "gender":"female", "age":"20", "friends":[ {
2018-03-19 23:37:28
3895
原创 使用C#将XML转化为JSON
使用C#将XML转化为JSONC#中有专门用于XML转化到JSON的库,Newtonsoft.Json。 官方文档地址:https://www.newtonsoft.com/json/help/html/Introduction.htm 先写一个类来专门做XML解析:(ps.别忘了using Newtonsoft.Json,如果报错去NuGet Package Manager搜一下然后安装...
2018-03-19 22:55:03
7147
原创 TypeScript实现点击展开div的效果
在前端中,我们经常可以看到一个列表中,点击某一行的某个按钮这一行就展开来,呈现一个div,本文来介绍一下这种效果的实现。首先,我们在Student类中写一个boolean类型的expand属性,设默认值为false,也就是默认状态下是不展开的。然后我们写一个expand函数,该函数的功能是将当前对象的expand属性取反。expand(student: Student){ st...
2018-03-14 19:34:19
3780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人