- 博客(45)
- 资源 (2)
- 收藏
- 关注
原创 【算法修炼道路】有序矩阵中第 K 小的元素
378. 有序矩阵中第 K 小的元素给你一个n x n矩阵matrix,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个不同的元素。示例 1:输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8输出:13解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13示例 2:输入:matrix = [[-5]]...
2021-02-27 01:04:09 248
原创 【算法修炼道路】最小k个数(topk)
设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/smallest-k-lcci著作权归领扣网络所有。商业转载请联系官方授权,非
2021-02-25 23:26:37 234
原创 【算法修炼道路】并查集(3)-
200. 岛屿数量给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2...
2021-02-24 01:41:52 252
原创 【算法修炼道路】并查集(2)-冗余连接
684. 冗余连接在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边[u, v]应满...
2021-02-24 00:14:33 195
原创 【算法修炼道路】并查集(1)- 省份数量
有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:isC.
2021-02-23 23:40:57 137
原创 【算法修炼道路】 杂谈
以前一直以为刷算法,就是刷动态规划,刷各种"奇技淫巧"的题目,这样才能锻炼思维,折射出解决问题的办法。但是好像并不是。昨天晚上面试了微软子公司,出的一道题目链表逆序的衍生题,是的,我没做出来,在一个细节地方卡壳了,代码有bug,跑不出结果很尴尬,面试官问我,没刷到过这类题目吗?我当然刷到过,不过那是在大学期间,都好几年前的事情了,没想到算法水平还磕磕碰碰,基础的东西全都丢掉了。所以后面,需要把基础的,easy类型的题目,全都过一遍,简单的可能5分钟就做完了,稍微复杂一些的,10-20分钟
2021-02-21 15:10:27 132
原创 【算法修炼道路】链表的中间节点
给定一个头结点为 head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.nex..
2021-02-21 15:04:02 228
原创 【算法修炼道路】有环链表逆序
现有一个链表(可能有环)现在要把它逆序输出出来,可能存在链表循环,这个是要注意的地方以下代码模拟一个循环链表的逆序操作。思路是,还是按照单链表的逆序思路来进行,只不过每一次循环,都需要判断,未逆序节点是否指向已逆序的节点,如果是,break,如果不是,则继续。#include <iostream>using namespace std;struct Node{ int value; Node* next;};int main(void){ N
2021-02-20 23:24:19 126
原创 【算法修炼道路】计算24点
题目描述计算24点是一种扑克牌益智游戏,随机抽出4张扑克牌,通过加(+),减(-),乘(*),除(/)四种运算法则计算得到整数24,本问题中,扑克牌通过如下字符或者字符串表示,其中,小写joker表示小王,大写JOKER表示大王:345678910JQKA2jokerJOKER本程序要求实现:输入4张牌,输出一个算式,算式的结果为24点。详细说明:1.运算只考虑加减乘除运算,没有阶乘等特殊运算符号,友情提醒,整数除...
2021-02-16 17:45:05 681
原创 【算法修炼道路】任务调度器
621. 任务调度器给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks = ["A","A".
2021-02-03 01:37:28 185
原创 【算法修炼道路】连续整数求和
829. 连续整数求和给定一个正整数 N,试求有多少组连续正整数满足所有数字之和为 N?示例 1:输入: 5输出: 2解释: 5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。示例 2:输入: 9输出: 3解释: 9 = 9 = 4 + 5 = 2 + 3 + 4示例 3:输入: 15输出: 4解释: 15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5说明:1 <= N <= 10 .
2021-02-01 00:24:50 1229
原创 【算法修炼道路】最大矩形
85. 最大矩形给定一个仅包含0和1、大小为rows x cols的二维二进制矩阵,找出只包含1的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = ...
2020-12-29 00:58:09 403
原创 【算法修炼道路】水域大小
你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。示例:输入:[ [0,2,1,0], [0,1,0,1], [1,1,0,1], [0,1,0,1]]输出: [1,2,4]提示:0 < len(land) <= 10000 < len(land[i]) <=...
2020-12-23 00:32:26 245
原创 【算法修炼道路】使用最小花费爬楼梯
数组的每个索引作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:输入: cost = [1, 100, ...
2020-12-21 01:19:54 236
原创 【算法修炼道路】翻转游戏
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flip-game-ii题目:你和朋友玩一个叫做「翻转游戏」的游戏,游戏规则:给定一个只有+和-的字符串。你和朋友轮流将连续 的两个"++"反转成"--"。 当一方无法进行有效的翻转时便意味着游戏结束,则另一方获胜。请你写出一个函数来判定起始玩家是否存在必胜的方案。示例:输入: s = "++++"输出: true解析: 起始玩家可将中间的 "++" 翻转变为 "...
2020-11-20 00:59:47 310
原创 【算法修炼道路】石子游戏
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/stone-game题目:甲、乙两人用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。甲和乙轮流进行,甲先开始。 每回合,玩家甲从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设甲、乙二人都发挥出最佳水平,当甲赢得比赛时返回true...
2020-11-15 13:01:51 208
原创 LeetCode 剑指 Offer 10- II. 跳台阶问题
(原题来自LeetCode剑指Offer,因为是付费内容,所以此处对原题进行一些修改)这道题比较简单。题目:小明要爬楼梯,但是由于小明腿短,每次顶多只能跨2层,当然他也可以选择只跨一层。提问:当有n阶台阶的时候,小明有多少种走完台阶的方法?---------------------------------------------------------------------------------输入:n=3,输出:3输入:n=5,输出:8-----------------
2020-07-24 01:09:02 243
原创 LeetCode 刷题记录帖(322,零钱兑换)
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。链接如下:https://leetcode-cn.com/problems/coin-change/示例1:输入:coins=[1, 2, 5], amount = 11输出:3解释: 11 = 5 + 1 + 1示例 2:输入:coins=2, amount = 3输入:-1思路1:首先排除贪..
2020-07-23 01:54:10 188
原创 C# 值传递 引用传递 + 用代码实现排列组合 + 随笔
我会想到写这个,是因为我昨天在做一个小项目的时候,需要写一个递归算法,然后需要传递值类型数据,因此这儿记录一个知识点,然后介绍一下我的算法思路。值传递就是传一个具体的值,引用传递就是传地址,害,也没啥好说的,但是C#里面是存在值类型和引用类型的,也就是说,引用类型,是不给你进行值传递的机会的,这个就很头疼了。而且,引用类型,你使用赋值操作也是没用的,因为赋值传递的还是地址,最终两个变...
2020-04-07 00:02:14 317
原创 .net core C/S初体验(一)
在ms上学习 .net core on. macOS,进行编码调用服务的时候出现了问题,然后找到了一篇博客,说得非常简洁非常好。https://www.cnblogs.com/chenxinyuan/p/12206292.html先码着,后面有时间详细写...
2020-03-17 01:07:43 537
原创 C# 监控电脑锁屏并且记录
直接贴代码,然后再解释代码class ComputerStatusSwitch{ public bool _IsSleeping = false; public Action SessionUnlockAction {get; set;} public Action SessionlockAction {get; set;} public Comnput...
2019-11-15 19:20:37 1507
原创 C# WCF 项目的建立与部署(一)
首先打开VS2017 或者其他版本的VS,新建一个解决方案,右键点击解决方案 ——>添加——>新建项目——> WCF服务应用程序(右边能看到关于这个项目的描述:该项目承载在IIS/WAS中)——> 确定然后我们就新建了一个WCF应用,WCF相当于一个WebService,是需要部署在服务器上的,但是如果是在本地新建的话,是可以在同一个解决方案中引用这个WCF服务...
2019-11-15 17:55:20 1266
原创 C# 每隔五分钟记录电脑状态
要求:程序开机时自动启动,进行一次记录,记录当前电脑的域名,账户名,IP地址,表示当前用户处于活跃状态1、新建的是一个winform项目,用winform的原因是因为,程序运行的时候,需要隐藏掉前端界面,如果是windows 服务的话,运行会导致程序挂起并失效,因为程序需要保持运行状态,死循环的写法肯定可以,但是不好;代码阻塞的方式导致程序挂起(windows服务我把阻塞程序的代码去掉就程序就...
2019-10-23 09:41:59 734
原创 C# 开发随笔(DataTable,Socket,winform.Close/Dispose问题,线程挂起)
emm,进公司开发了三个月的C#,最近遇到一些不痛不痒的小问题,在此记录一下,不开专题博客进行记录。1、C#对于DataTable的操作数据检索,DataTable.Select(),Select括号里面的内容和SQL语句where后面的子句是一毛一样的,然后它返回的是一个DataRow的数组,DataRow[“column”],中括号里面的括号是字段的名称,取出来之后需要进行装箱操作,转...
2019-10-18 19:18:56 488
原创 动态规划学习与 LeetCode算法实践
想把一些基础算法重新捡起来,先复习一下动态规划。动态规划主要的思想就是状态转移方程,该方程确保每一个状态都是最优解。有的时候处理问题借助二维数组存储状态,有的时候可以简化为一维数组,如果不了解什么是状态转移方程可以去搜索一下,这里就不详细描述了,有点抽象,我刚开始学算法的时候,也不了解,感觉十分抽象,但是写了几道题目就发现,其实还是蛮好理解的,就是很多时候想不到方程应该怎么写。来看几道...
2019-10-08 11:40:08 190
原创 C# 委托与线程通信
1、C#中的委托机制我简单理解为C++中的函数指针。用法如下:使用委托:public delegate string MessageDelegate(string message);public class M{ public string T(string message) { return message; }}class...
2019-09-25 14:28:20 746
原创 C# 工厂模式简述。 unsafe代码块的使用
工厂模式有三种,简单、方法‘抽象三种,我理解为一维,二维,三维的层面,主要就是返回方法,不用自己手动new,而是依靠返回。就不贴代码了。工厂模式嘛,就是你想要什么对象,不用通过自己手动new,而是通知“工厂”,让他帮你制作,简单来说就是工厂方法return给你一个对象。一维二维三维的层面就是简单工厂、方法工厂、抽象工厂三种。1、简单工厂就是一对一的模式。Pizza是事先定义好的类,...
2019-08-29 20:10:08 480
原创 C# COM Object或Excel未正确关闭,资源未成功释放解决方法
最近开发一个工具,需要调用Office.Intreop.Excel,最后关闭Excel对象的时候,明明调用了close和quit方法,打开进程一看,Excel进程依然存在,说明资源没有被正确关闭,虽然不影响使用,但是很不美观,不优雅,这不是一个合格的程序。网上搜了很多方法,一个一个去尝试,很多方法都不能解决,但是最终还是找到了可以解决的方法,话不多说,直接贴代码,后面作解释:try{...
2019-08-28 17:48:53 987
原创 正则表达式 判断年月日合法性
使用正则表达式判断年月日是否合法(这里不考虑闰年2月29日的情况)判断类型为 20151206、19551230、20180808类似这种格式的合法性其实并不很难,主要思考过程,(答案见末尾):先确定句子结构:(年月日)年由4位组成,月和日分别由2位组成1、年: 可以分为19开头和20开头,(19开头|20开头) 19是固定的,后面两位数字都是0-9 ...
2019-08-27 15:57:21 9391 3
原创 C# 将Word文件保存为指定格式(PDF,Doc, Docx)
Document doc = new Document;............// 这里文件名后缀要和后面的参数保持一致,否则会出现异常doc.SaveAs2(savePath, WdSaveFormat.wdFormatDocument);
2019-08-26 17:51:02 2212
原创 C# 使用正则表达式判断文件后缀名
正则表达式就不介绍了,内容太多了string value = "fileName";string patternDoc = @"(.*)(\.doc)$";string patternDocx = @"(.*)(\.docx)$";string patternPDF = @"(.*)(\.pdf)$";string patternJPG = @"(.*)(\.jpg)$";if...
2019-08-26 17:38:47 2896
原创 C# 操作Excel的时候,出现"被呼叫方拒绝接受呼叫的异常"的解决方案(参考官方给出的解决方案)
首先官方有对这个错误给出解释和解决方案,连接如下:https://docs.microsoft.com/zh-cn/previous-versions/ms228772(v=vs.120)#%E5%8F%AF%E9%9D%A0%E7%BC%96%E7%A8%8B简单来说,貌似是线程问题,我猜。。。之前我尝试着在代码中添加Thread.Sleep(1000);来进行解决,这种办...
2019-08-26 17:32:42 4486 2
原创 C# 在word文档中寻找指定的关键字
C#操作word文档时,查找指定关键字:Word._Application word = New Word.Application;Word._Document = word.Document.Open("file name");Word.Selection selection = word.Selection;selection.Find.Text = "想要查询的文本";sele...
2019-08-26 08:30:19 2740
原创 C# 从Excel中根据名称复制图表到剪贴板,然后粘贴到Word中
利用C#,从Excel中复制Chart对象到Word中。复制到Word中的ChartArea可编辑// 获取Excel对象Excel._Application Excel = new Excel.Application();Workbook workbook = Excel.Workbooks.Open("FileName");// 获取Word对象Word._Appli...
2019-08-23 11:41:47 1178
原创 C# 对Word进行操作 - 根据所选文字设置文字颜色和底色
我今天找了很久没找到通过C#代码来对Word中选中的文本进行底色设置的代码,一度以为没有这个,后来去阅读源码才看到,其实C#是提供了底色修改的接口的,代码如下:Word._Application word = new Word.Application();Word._Document document = word.Documents.Open("filename");word.V...
2019-08-22 17:25:58 4074
原创 C# 获取处于运行中的Excel、Word对象
今日在写项目的过程中,涉及到对Excel和Word的操作,考虑到程序的健壮性,需要对一些特殊情况作出处理,通常情况下,Excel和Word是通过winform下的openfiledialog打开的,这种情况去获取对于对象是十分方便的。但是有些Word或者Excel由用户自己先行打开了,后面程序再去打开这些文档,就会出现问题,这种情况需要获取Excel或者Word对象该怎么办呢?通过查阅资料...
2019-08-21 13:40:05 2634
原创 C# doevents
C#中的doEvents在我个人理解来看有点多线程的意思,但是他不是多线程,他是单线程的,只不过DoEvents可以执行Windows消息队列中的消息。那么DoEvents的应用场景有哪些呢?比如:在连接一个数据库的时候,读取数据库中所有的信息,由于是单线程的,所以这个时候系统会因为需要加载大量的数据而阻塞,winform的前端界面会因为这个卡顿,出现无法再拖拽窗口,无法点击界面按钮等情况...
2019-08-21 08:31:34 2986
原创 C#中,缺少程序集,或者缺少using关键字
这个问题可能有几种情况:1、没有添加引用2、版本不一致我做项目的时候碰到了第二种情况,一开始还不知道,后来才发现,引用的dll文件是4.7.2版本,而自己的程序的目标框架是低于4.7.2的,因此修改版本框架即可。右键项目 -> 属性 -> 目标框架 修改成对应版本...
2019-08-20 15:40:52 1942
原创 C# 在使用webclient下载一整个文件夹的时候, 显示下载进度条
在C# winform编程中,有一个进度条的控件叫 ProgressBar,可以通过代码设置它的属性,然后我们就可以实现下载的时候显示进度条。对于文件夹的下载,由于文件夹里面可能存在文件和文件夹,而C#仅支持对文件的下载,所以需要通过递归搜索,遍历文件夹的方式进行下载。public void Download(string savePath, string sourcePath){ ...
2019-08-15 17:55:37 1471
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人