- 博客(77)
- 收藏
- 关注
原创 公式截图快速转换为word公式
用word写论文的时候经常需要用公式编辑器编写公式, 下面介绍一种可以快速将公式图片(也包括手写的公式)转换为word中可编辑的公式的方法: 第一步: 利用Mathpix Snip (https://mathpix.com/) 将截图转换为latex源码。如下图所示: 第二步: 需要使用MathType,一般写论文的人都会在word中安装。 直接将上述latex源码粘贴到word中的latex编...
2020-04-22 22:18:33
8029
3
原创 冒泡排序(BubbleSort)
两两比较相邻记录,如果反序则交换,直到没有反序的记录。 时间复杂度O(n2) #include <iostream> #include <cstdlib> //顺序表结构 #define MAXSIZE 10 //要排序数组个数最大值 typedef struct { int r[MAXSIZE + 1]; //存储要排序数组,r[0]作为哨兵或临时变量 int le...
2019-09-22 09:20:46
618
原创 简单选择排序
每一趟在n-i+1(i=1,2,…,n-1)个记录中选取最小的记录作为有序序列的第i个记录。 时间复杂度O(n2) #include <iostream> #include <cstdlib> //顺序表结构 #define MAXSIZE 10 //要排序数组个数最大值 typedef struct { int r[MAXSIZE + 1]; //存储要排序数组,r[...
2019-09-22 09:14:55
352
原创 直接插入排序(Straight Insert Sort)
将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 时间复杂度O(n2) #include <iostream> #include <cstdlib> //顺序表结构 #define MAXSIZE 10 //要排序数组个数最大值 typedef struct { int r[MAXSIZE + 1]; //存储要排序数组,r[0]作为哨兵或临...
2019-09-22 09:06:32
545
原创 二分查找
前提是线性表是有序的。 时间复杂度为O(logn) #include <iostream> #include <cstdlib> //顺序表结构 #define MAXSIZE 10 typedef struct { int r[MAXSIZE + 1]; //存储数组,r[0]作为哨兵或临时变量 int length; //记录顺序表长度 }SqList; ...
2019-09-22 08:52:37
212
原创 希尔排序(Shell Sort)
是直接插入排序的改良版。 直接插入排序在记录本身有序和记录比较少时,比较高效。 希尔排序则用来创造这两个条件。 排序时采用跳跃分割的策略:将相距某个增量(increment)的记录组成一个子序列,保证在子序列内分别进行直接插入排序后的结果是基本有序而不是局部有序。 #include <iostream> #include <cstdlib> //顺序表结构 #define...
2019-09-21 00:34:55
225
原创 堆排序(Heap Sort)
基本思想是(假设利用大顶堆): 将待排序的序列构造成一个大顶堆。此时,根节点就是序列的最大值。将其与堆数组末尾元素交换,然后将剩余的n-1个序列重新构建大顶堆,得到n个元素中的次大值…反复执行,便得到一个有序序列。 时间复杂度O(nlogn), 空间复杂度O(1),仅交换时需要一个暂存单元。 比较与交换时跳跃式进行,因此不稳定。 #include <iostream> #includ...
2019-09-21 00:17:58
199
原创 归并排序(Merging Sort)
基本思想: 假设待排序列含有n个元素,可以看成n个有序的子序列,每个字序列的长度为1,然后两两归并,得到n/2(向上取整)个长度为2或1的有序子序列;再两两归并…,重复,直到得到一个长度为n的有序序列,即为(2路归并排序)。 需要递归logn次,且每次不要O(n)的时间,因此总的时间复杂度为O(nlogn),为最好、最快即平均的时间性能。 空间复杂度为O(n) 是一种稳定 的排序算法。 #incl...
2019-09-20 23:51:06
465
原创 string类型大整数相加
#include <iostream> #include <string> #include <algorithm> using namespace std; string sum(string str1, string str2) { if (str1.size() == 0) { return str2; } if (str2.size() ...
2019-09-11 17:49:47
1101
原创 《一个实例搞定MATLAB界面编程》的实践总结
在本文的开头,首先非常感谢作者彭军可以为大家分享出这篇优秀的可操作的实例教程。对于初次涉及GUI界面编程的人来说,正如作者自己说的,坚持做完实例,即使不能说没有什么难度,起码对GUI编程已经非常了解了。 写这篇文章主要想记录一下在操作这个实例的过程中自己遇到的问题及对一些函数的认识。希望在总结的过程中自己能有新的收获,如果有什么不对的地方,欢迎交流指正。 在整个过程中,我犯得一个比较严重的错误就是...
2019-09-10 10:23:31
3922
原创 pair标准类型的妙用
固定格式字符串,打印价格最高的品牌的名字。 #include<iostream> #include<string> #include<vector> #include<utility> using namespace std; void printMaxPriceInfo(char * s){ if (s == nullptr) return; ...
2019-09-05 11:28:47
811
原创 返回一个数列中倒数第二小的数
#include<iostream> #include<string> #include<vector> #include<algorithm> #include<functional> using namespace std; int find_second_min(int arr[]) { int len = 0; ...
2019-09-05 10:41:39
1504
1
原创 C语言中宏定义函数的运算优先级问题
宏定义在编译阶段被纯文本替换,因此使用宏定义函数时要特别注意优先级问题。 #include<iostream> using namespace std; #define DIV(x) x/x int main(){ int a = 12, k = 3, m = 1; a /= DIV(k + m) / DIV(k + m); printf("%d, %d\n", DIV(k...
2019-09-05 10:31:11
3601
原创 单向循环链表的创建以及C++中pair标准类型的使用
本程序中设计两个知识点: 1、数据结构: 单向循环链表的创建 2、C++关联容器中pair标准类型的使用(使用的头函数utility) 题目:从固定格式字符串中创建姓名、薪资单向循环链表并输出薪资最高的人员的姓名和薪资。 #include<iostream> #include<string> #include <cstring> #include<vect...
2019-09-05 09:47:24
417
原创 快速排序(Quick Sort)
基本思想: 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后分别对这两部分记录继续排序,最终达到整个序列有序。 #include <iostream> #include <cstdlib> //顺序表结构 #define MAXSIZE 10 //要排序数组个数最大值 typedef struct { int r[MAXS...
2019-09-04 19:19:59
232
原创 将以字符串输入的阿拉伯数字转换为中文输出
例如: 输入n 输出 “18” “十八” “103” “一百零三” “13000” “一万三千” “10002000” "一千万零二千” (0<n<100000000) #include <iostream> #include <string>...
2019-08-08 16:34:36
2624
1
原创 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,...
2019-07-03 22:58:01
326
原创 怎样在子弹数量一定的前提下达到最大的杀伤效果
战场上一般以摧毁敌方的有生力量为目的,不同的目标,彻底进行摧毁需要消耗不同弹药量,各个目标的杀伤价值也不同。现有一款一次带弹1000(total)发的重机枪,怎样在弹药消耗完时达到最大的战场杀伤效果。 目标 i 摧毁消耗弹药量(发)n 杀伤价值 v 1 200 6 2 600 10 3 100 3 4 300 5 5 450 8 6 150 4 解题思路:...
2019-06-05 21:55:03
280
原创 Python中的变量类型与C\C++的不同
使用C\C++时,要预先声明待使用的变量以及变量的数据类型,而且不同数据类型的变量之间相互赋值会发生错误。 是因为C\C++中变量只不过是程序可操作的存储区的名称。C\C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。C\C++会给不同数据类型的变量分配不同大小的内存空间,不同数据类型的变量间相互赋值,存在超出分配的内存可存储范...
2019-05-20 11:01:20
1151
原创 第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现...
2019-05-16 21:15:06
201
原创 将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 解题思路: 二叉搜索树是一种树种每个节点都大于它的左子节点,小于它的右子节点的树。如果中序遍历二叉搜索树,则结果为一个有序序列。 由二叉搜索树的性质可知,题目中给定有序数组的中间数即为根节点,中间数左边的序列为根节点的左子树,右边的序...
2019-05-15 23:02:38
1433
原创 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 解题思路: 使用队列的性质来实现解法。 Python 不用队列 # Definition for a binary tree node. # class TreeNode: # def __init__(self...
2019-05-15 22:21:43
140
原创 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 解题思路: 分别访问左右子树对应位置的节点,查看是否相等。 Python: # Definition for a binary tree node. #...
2019-05-15 19:32:46
154
原创 98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 解题思路: 评论中有两种思路,一种根据二叉搜索树的定义求解,另一种则按照中序遍历升序求解。 Python: 贴一个大神的解法。 # Definition for a binary tree n...
2019-04-28 22:39:24
269
原创 423. 从英文中重建数字
给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: “owoztneoer” 输出: “012” (zeroonetwo) 示例 2: 输入: “fviefuro” ...
2019-04-27 20:51:14
334
原创 map()函数
map(function, iterable, …) 返回一个迭代器,迭代器中的元素是将 可迭代对象iterable 中的每个元素输入 函数function 的输出的元素; 如果有多个可迭代对象,则函数iterable必须要对应相应的输入参数个数,且最短的可迭代对象中的元素遍历完后停止。 ...
2019-04-03 22:52:05
3136
原创 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 ...
2019-04-03 11:27:44
200
原创 五大思想
尝试用案例来学习。 分治 1、归并排序 - 净的博客 - 优快云博客 https://blog.youkuaiyun.com/yangsong95/article/details/82850761 动态规划 最优决策表(二维表): 行:问题的不同阶段 列:问题的状态 f(n,m)=max{f(n-1,m), f(n-1,m-w[n])+P(n,m)} 贪心 做出在当前看来最好的选择,不会影响之前的决策。 局...
2019-04-03 10:54:37
1242
原创 104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 解题思路: 树结构的问题,一般可以用递归来实现。 Python: # Definition for a binary tree node. # class TreeNod...
2019-04-02 23:00:58
184
原创 Lambda表达式
lambda关键字可以用来创建一些匿名函数(不用函数名,不需要想用def创建函数那样,简单方便。)。 lambda a, b: a+b 这个函数返回它两个参数a,b的和。 lambda函数可以被用作任何需要函数对象的地方。它在语法上被限制为一条表达式。从语义上讲,它只是正常函数定义的语法糖。 与嵌套函数定义一样,lambda函数可以引用包含范围的变量: &gt;&gt;&gt; def ma...
2019-03-17 17:17:44
181
原创 环形链表
给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例 2: 输入:head = [1,2], pos = 0 输出:true 解...
2019-02-28 23:16:49
240
原创 回文链表
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解题思路: 使用头插法建立新的链表,即新的节点永远排在头节点的后面,这样将原来的链表反向排列,然后遍历两个链表进行比较,每个节点都相同则返回True;否则,返回...
2019-02-27 21:54:16
166
原创 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解题思路: 这个题做了快两个小时还是没有做出来,简直怀疑人生!上一次有这种感觉还是高中做数学题的时候!无奈借鉴博友 Leetcode 21:合并两个有序链表(最详细...
2019-02-26 23:28:25
192
1
原创 反转链表
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 解题思路: Python: # Definition for singly-linked list. # class ListNode: # d...
2019-02-21 23:28:27
146
原创 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 解题思路: Python: # Definition for singly-link...
2019-02-19 22:41:49
240
原创 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -&gt; 1 -&gt; 9. 示例 2: 输入:...
2019-02-16 21:51:24
406
原创 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明
2019-02-15 00:06:05
359
原创 报数
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 6. 312211 1 被读作 "one 1" ("一个一") , 即 11。 11 被读作 "two 1s" ("两个一"), 即 21。 21 被读作 "one 2", &quo
2019-02-14 22:59:58
288
原创 实现strStr()
实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", needle = ...
2019-02-14 21:00:05
1531
原创 字符串转换整数 (atoi)
请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...
2019-02-05 22:10:06
789
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅