自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (7)
  • 收藏
  • 关注

原创 LeetCode 404. 左叶子之和(C++)

题目:计算给定二叉树的所有左叶子之和。示例: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL),...

2018-08-31 22:59:20 758

原创 LeetCode 111. 二叉树的最小深度(C++)

题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 思路:!!!递归的终止条件:遍历到叶子结点,这里极容易错误的将遍历到节点为空作为递归终止条件,从而产生错误。/** * Definition for a bin...

2018-08-31 22:56:35 415

原创 LeetCode 112. 路径总和(C++)

题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。思路:递归终止条件:叶子节点的值等于sum(sum在递...

2018-08-31 22:49:09 579

原创 LeetCode 110. 平衡二叉树(C++)

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4] 返回 false 。思路:两层递归,...

2018-08-31 22:42:56 776

原创 LeetCode 222. 完全二叉树的节点个数(C++)

题目:给出一个完全二叉树,求出该树的节点个数。说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。思路:参考文章 首先说明如下: 1.如果一棵二叉树是完全二叉树,那么二叉树最大深度和右子树的最大深度是相同的话,那么根节点的左...

2018-08-31 22:36:38 1380

原创 LeetCode 101. 对称二叉树(C++)

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。思路:递归终止条件::两棵树同时遍历到空(true),仅一棵树遍历到空(false),两棵树遍历到的节点值不同(fals...

2018-08-31 22:10:01 1363

原创 LeetCode 100. 相同的树(C++)

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1: 示例 2: 示例 3: 思路:递归终止条件::两棵树遍历到的节点均为空(true),有一个为空(true),均不为空但是节点值不一样。/** * Definition for a binary tree node. * struct T...

2018-08-31 22:03:28 963

原创 LeetCode 226. 翻转二叉树(C++)

题目:翻转一棵二叉树。示例: 输入: 输出: /**思路:递归终止条件:终止条件就是遍历到节点为空。 注意:二叉树非叶子节点不一定同时拥有左右孩子。 * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * T...

2018-08-31 21:52:56 650

原创 LeetCode 111. 二叉树的最小深度(C++)

题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 返回它的最小深度 2.思路:递归终止条件,遍历到叶子结点root->left == NULL && root->right == N...

2018-08-31 21:33:41 964

原创 LeetCode 编译错误记录(更新中)

错误提示:stray ‘\357’ in program 错误原因:可能是中英分号混用错误导致。错误提示:member access within null pointer of type ‘struct TreeNode’ 错误原因:访问了空指针的成员(通常是访问了空指针的val)...

2018-08-31 20:49:29 1756

原创 LeetCode 104. 二叉树的最大深度(C++)

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。/** * Definition for a binary ...

2018-08-27 15:59:13 2585

原创 LeetCode 347. 前K个高频元素(C++)

题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) , ...

2018-08-27 11:01:23 1888 3

原创 LeetCode 279. 完全平方数(C++)

题目:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路:这道题看起来有点像贪心算法,但是如果运用贪心算法的话 12 =...

2018-08-27 09:51:59 2926

原创 LeetCode 199. 二叉树的右视图(C++)

题目:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---思路:这道...

2018-08-26 20:46:37 450

原创 LeetCode 107. 二叉树的层次遍历 II(C++)

题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]相比于LeetCode 102 ...

2018-08-26 20:18:32 788

原创 LeetCode 102. 二叉树的层次遍历(C++)

题目给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]废话不多说,直接上代码/** * Definition for ...

2018-08-26 19:31:47 998

原创 LeetCode 94、144、145 二叉树的前序、中序、后序遍历的统一实现方法(递归与非递归)

递归方法实现二叉树其实很简单,其实只需要更改输出每个结果与·调用递归函数的相对位置即可实现。一、递归实现1.二叉树的前续遍历class Solution {private: void rec(TreeNode* root,vector<int> &ret){ if(root != NULL){ ret.pus...

2018-08-26 17:06:06 216

原创 LeetCode 145. 二叉树的后序遍历(C++)

题目:给定一个二叉树,返回它的 后序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?思路:二叉树后序遍历规则: 1.遍历左子树 2.遍历右子树 3.遍历根节点 递归实现:/** * Definition for a ...

2018-08-26 15:26:33 1699

原创 LeetCode 94. 二叉树的中序遍历(C++)

题目:给定一个二叉树,返回它的中序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归实现/** * Definition for a binary tree node. * struct TreeNode { * int v...

2018-08-25 16:56:48 3634

原创 LeetCode 144. 二叉树的前序遍历 (C++)

题目:给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?思路:二叉树的前序遍历规则 1. 访问根结点; 2. 遍历左子树; 3. 遍历右子树 递归实现方式:/** * Definit...

2018-08-25 15:11:44 1014

原创 LeetCode 71. 简化路径

题目:给定一个文档 (Unix-style) 的完全路径,请进行路径简化。例如,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"边界情况:你是否考虑了 路径 = "/../" 的情况?在这种情况下,你需返回 "/" 。此外,路径中也可能包含多个斜杠 '/' ,如

2018-08-25 11:24:18 128

原创 LeetCode 150. 逆波兰表达式求值

题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = ...

2018-08-25 10:40:57 293

原创 LeetCode 20. 有效的括号(C++)

题目:给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出:...

2018-08-24 20:29:18 2490

原创 LeetCode 61. 旋转链表(C++)

题目:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步

2018-08-24 15:57:35 562 1

原创 LeetCode 19. 删除链表的倒数第N个节点

题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗?思路:1.两次遍历:第一次遍历链表,求出整个链表的长...

2018-08-24 14:59:06 128

原创 LeetCode 147. 对链表进行插入排序(C++)

题目:对链表进行插入排序。 动画演示 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法: 1.插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 2.每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序...

2018-08-23 20:17:07 677

原创 排序算法——堆排序(大顶堆、小顶堆)

堆排序的思想这里就先不讲了,以后有时间再补上,下面是分别采用大顶堆和小顶堆实现的堆排序。 注意:下面例子中排序的数字是{1,2,5,3,6,4,9,7,8}。 大顶堆方式#include <iostream>#include <stdlib.h>using namespace std;//堆调整//将nums[s..m]调整为大顶堆,其中除了nums[s...

2018-08-21 16:19:43 4373 2

原创 LeetCode 24. 两两交换链表中的节点(C++)

题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。思路:建立虚拟头结点(为了不对head进行特殊处理),按照如下示意图进行节点交换。 ...

2018-08-20 06:49:49 2487

原创 LeetCode 21. 合并两个有序链表(C++)

题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:新建虚拟头结点,指针cur等于头结点,比较l1和l2的大小,将cur->next指向二者中较小的。/** * Def...

2018-08-19 16:59:44 779

原创 LeetCode 82. 删除排序链表中的重复元素 II(C++)

题目:定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3思路:这道题的陷阱在于需要删除所有含有重复数字的节...

2018-08-19 16:21:59 558

原创 LeetCode 203. 删除链表中的节点(C++)

题目:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路:建立虚拟头节点指向head,遍历链表,当链表的cur->next->val等于给定的val则删除cur->next并将cur指向删除节点的...

2018-08-19 15:35:52 880

原创 LeetCode 2. 两数相加(C++)

题目:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:创建一个临时的...

2018-08-19 11:12:16 1883

原创 LeetCode 455. 分发饼干(C++)

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 注意: 你可以假设胃口值...

2018-08-19 10:39:05 910

原创 LeetCode 86. 分隔链表(C++)

题目:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路:参考博客 创建两个临时节点,之后遍历...

2018-08-19 10:06:12 614

原创 LeetCode 83. 删除排序链表中的重复元素(C++)

题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 重点内容输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3思路:这道题比较简单,就是不断判断当前节点的下一个节点的val是否与当前节点的val相同,相同的话当前节点的next指针指...

2018-08-19 09:00:32 1307 1

原创 LeetCode 206. 反转链表

题目:反转一个单链表。 示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路:反转链表实际上就是更改每个节点的next指针,由于需要指向节点的上一节点,则需要当前节点的指针和上一节点的指针,但...

2018-08-19 08:33:09 132

原创 LeetCode 220. 存在重复元素 III(C++)

题目:给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: tr...

2018-08-17 22:21:23 910

原创 LeetCode 219. 存在重复元素 II(C++)

题目:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = ...

2018-08-17 22:03:27 551

转载 类的构造函数和析构函数

原文链接类的构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。类的析构函数类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,...

2018-08-12 20:48:16 186

原创 LeetCode 49. 字母异位词分组(C++)

题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan&quo

2018-08-12 19:08:26 1546

TeeChart2011.ocx && .net && 破解版

安装前请确定已经安装 .net环境,32位系统将TeeChart2011.ocx放在System32,64位系统放在SysWOW64文件加下,通过该文件夹下的cmd.exe 执行regsvr32 + 控件的路径+文件名进行注册

2018-03-28

C#实现带括号的逻辑表达式的运算(与或非)

实现了带括号的逻辑表达式的自动判定,如 ((true && !false) || false) && true || ( false && true )

2018-03-24

实现 DataTable按条件进行更新(类似sql的update)

使用C#直接对DataTable进行操作,实现了sql语句的update tabel set name = 'Clear_Mind' where id < 5 的功能。

2018-03-23

C#(Winform)实现右键菜单(带勾选)

通过Winfrom实现了右键菜单的功能,并且能够在选中右键弹出菜单选项后,自动将该选项勾选,代码其实就一句话,不想下载的话可以参考我的博客http://blog.csdn.net/my_clear_mind/article/details/79511174

2018-03-11

C# winform 导出datatable到excel的多个sheet

使用C#实现了将多个datatable中的内容导出到 一个excel文件的不同的sheet页,每个sheet页对应一个datatable。代码中的datatable是程序中添加的内容,从数据库中导出数据到excel的话只需要将数据表内容写入datatable即可。

2017-12-01

C# 导出excel表格(xls、xlsx两种格式)

使用C#实现了excel表格的导出功能,包含xls和xlsx两种格式。 程序有添加关于NOPI的引用,有疑问可以参考我的csdn博客http://blog.csdn.net/my_clear_mind

2017-09-12

C#连接mysql数据库与简单操作

本程序实现了使用C#连接mysql数据库,并进行简单的update操作,并且配有详细注释。 使用前需要安装mysql connector 网下载链接https://dev.mysql.com/downloads/connector/net/6.9.html 更多内容可以参考我的csdn博客 http://blog.csdn.net/my_clear_mind

2017-09-11

空空如也

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

TA关注的人

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