自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 C++ Primer(5)课后练习:2、变量与基本类型(部分)

2.1{类型int、long、long long和short的区别是什么?无符号类型和带符号类型的区别是什么?float和double的区别是什么?int和short都是用两个字节表示,int至少和short一样大;long用4个字节表示,至少和int一样大;long long用8个字节表示,至少和long一样大,long long是C++标准11中新定义的。无符号:unsigned只能表示大于或等于0的;带符号的:signed可以表示小于、等于、大于0的float:单精度的,32位表示,有7个有效

2020-07-18 10:39:48 160

原创 LeetCode:面试题14-1.剪绳子

给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3

2020-06-18 17:05:21 144

原创 LeetCode:17.17.多次搜索

给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。输出smalls中的字符串在big里出现的所有位置positions,其中positions[i]为smalls[i]出现的所有位置。示例:输入:big = “mississippi”smalls = [“is”,“ppi”,“hi”,“sis”,“i”,“ssippi”]输出: [[1,4],[8],[],[3],[1,4,7,10],[5]]提示:0 &lt

2020-06-17 09:13:11 230

原创 LeetCode:599.两个列表的最小索引总和

假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:[“Shogun”, “Tapioca Express”, “Burger King”, “KFC”][“Piatti”, “The Grill at Torrey Pines”, “Hungry Hunter Steakhouse”, “

2020-06-16 09:45:33 104

原创 LeetCode:1372.二叉树的最长交错路径

给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方向:左变右或者右变左。重复第二步和第三步,直到你在树中无法继续移动。交错路径的长度定义为:访问过的节点数目 - 1(单个节点的路径长度为 0 )。请你返回给定树中最长 交错路径 的长度。示例 1:输入:root = [1,null,1,1,1,null,null,1,1,null,1,null,nu

2020-06-15 22:28:40 152

原创 LeetCode:859.亲密字符串

给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。示例 1:输入: A = “ab”, B = “ba”输出: true示例 2:输入: A = “ab”, B = “ab”输出: false示例 3:输入: A = “aa”, B = “aa”输出: true示例 4:输入: A = “aaaaaaabc”, B = “aaaaaaacb”输出: true示例 5:输入: A

2020-06-12 23:04:56 129

原创 LeetCode:506.相对名次

给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”)。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: [“Gold Medal”, “Silver Medal”, “Bronze Medal”, “4”, “5”]解释: 前三名运动员的成绩为前三高的,因此将会分别被授予 “金牌”,“银牌”

2020-06-12 10:44:24 105

原创 LeetCode:434.字符串中的单词数

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-segments-in-a-stringclass Solution: def countSe

2020-06-11 23:36:09 107

原创 LeetCode:735.行星碰撞

给定一个整数数组 asteroids,表示在同一行的行星。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入:asteroids = [5, 10, -5]输出: [5, 10]解释:10 和 -5 碰撞后只剩下 10。 5 和 10 永远不

2020-06-11 23:10:51 173

原创 LeetCode:725.分隔链表

给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例: 1->2->3->4, k = 5 // 5 结果 [ [1], [2], [3], [4], null ]示例 1:输入:root = [1, 2, 3],

2020-06-11 22:04:04 91

原创 LeetCode:面试题 16.02. 单词频率

设计一个方法,找出任意指定单词在一本书中的出现频率。你的实现应该支持如下操作:WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率示例:WordsFrequency wordsFrequency = new WordsFrequency({“i”, “have”, “an”, “apple”, “he”, “have”, “a”, “pen”});wordsFrequency.get(“you”); //返回0,"you"没

2020-06-09 22:46:55 158

原创 LeetCode:222.完全二叉树的节点个数

给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入:1/ 2 3/ \ /4 5 6输出: 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-complete-tree-nodesclass Solution

2020-06-08 15:22:48 89

原创 LeetCode:117.填充每个节点道德下一个右侧节点

给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。进阶:你只能使用常量级额外空间。使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。示例:输入:root = [1,2,3,4,5,null,7]输出:[1

2020-06-06 17:39:38 97

原创 LeetCode:986.区间列表的交集

给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序。返回这两个区间列表的交集。(形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。)示例:输入:A = [[0,2],[5,10],[13,23],[24,25]], B = [[1,5],[8,12],[15,24],[25,26]]输出:

2020-06-06 10:13:49 136

原创 LeetCode:199.二叉树的右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:1 <—/ 2 3 <—\ 5 4 <—来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-right-side-view广度优先,即把二次

2020-06-05 11:44:55 94

原创 LeetCode:945.使数组唯一的最小增量

给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。提示:0 <= A.length <=

2020-06-04 22:37:08 114

原创 LeetCode:面试题:17.04 消失的数字

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?注意:本题相对书上原题稍作改动示例 1:输入:[3,0,1]输出:2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/missing-number-lcciclass Solution: def missingNumber(self, nums: List[int]) -> int: '''

2020-05-31 23:37:35 357 1

原创 LeetCode:后继者

设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例 1:输入: root = [2,1,3], p = 1``2/ 1 3输出: 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/successor-lcci# Definition for a binary tree node.# class TreeNode:# def __init__

2020-05-30 23:34:41 106

原创 LeetCode:337:打家劫舍III

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/house-robber-iii# Def

2020-05-29 23:01:09 114

原创 LeetCode:14:最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。说明:``所有输入只包含小写字母 a-z 。class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: return "" i = len(strs[0]) for j in range(len(strs)-1):

2020-05-26 17:29:27 95

原创 Leetode:11:盛最多水的容器

给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water。双指针的使用class Solution: de

2020-05-26 16:12:16 116

原创 Leetcode : 7:整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:在这里插入代码片假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer由于Python没有什么整数溢出,所以你可以不用注意临界值这里要注意的是:x = -14,是一个负数且x 不是10的整数倍

2020-05-26 10:24:33 83

原创 LeetCode: 581:最短无序连续子数组

给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。这题用排序+双指针class Solution: def findUnsortedSubarray(self, nums: List[int]) -> int: new = sorted(nums)#这里用了内置函数 start, end = 0, len(nums)-1 while start

2020-05-25 00:07:29 64

原创 Leetcode: 1221题——分割平衡字符串

在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/split-a-string-in-balanced-strings哈希表的最简单应用了class Solution: def balancedStringSplit(self, s: str) -> int:

2020-05-24 22:07:35 189

原创 Leetcode:703题——数据流中的第k大元素

设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-a-stream这题用Python的内置函数来做,几行代码就OK了,但这样做

2020-05-22 10:12:40 151

原创 LeetCode:1319题——连通网络的操作数

题目:用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。来源:力扣(Le

2020-05-21 00:02:46 260

原创 并查集:一、什么是并查集?

s

2020-05-20 09:12:54 1456

原创 C++:CCF认证题目,小明种苹果(续)

他的题目要求我的代码#include <iostream>using namespace std;int main(){ /**苹果树的颗数*/ int N; int T = 0,D = 0,E = 0; cin >> N; int m[N+1];//用来表示1~N颗树,下标0不理 int e[N + 1];//用来标志掉果的树,1~N颗树,下标...

2019-10-13 14:16:03 182

原创 C++:CCF CCSP认证题目,小明种苹果

题目截屏,太长了下面是代码:在这里插入代码片#include <iostream>using namespace std;int main(){ int N,M;//N苹果的颗数,M疏果操作轮数 cin >> N >> M; cout << endl; int a[N+1][M+1];//表示a(ij),第i颗树的第j轮操作...

2019-10-11 23:21:38 414

原创 C++,栈和堆的区别

什么是栈,什么是堆?1、这两个的内存空间,栈是比堆小很多的。2、程序在运行的时候,如果对象被赋予冒个值,如a = 10,就是保存在栈内,如果是要开辟一个内存空间,就是在堆内,如 int* a = new int[];3、在速度上,栈比堆要快,而且当程序结束的时候,栈上的内存会自动被释放,而堆上的内存不会自动释放,要人为操作:这就是为什么使用new动态开辟空间的时候,需要delete p(指针...

2019-10-06 23:30:52 121

原创 C++,递归函数的运用

递归是一种比较强大方便的运用。递归主要分为两大步:1、要有退出递归循环的条件,如果没有,就会一直递归下去,后果你懂得2、一个问题能够分割成数个相等的小问题,可以这样理解,就是能够找到一个万能公式,所有的小问题1都能代进去。如求n!,n!=n*(n-1)!=n*(n-1)*(n-2)!。这个**(…)!**就是它的万能公式看下面的代码int sum(int n){ if(n==1...

2019-10-04 00:59:39 678

原创 C++,自定义一个函数,将整数转换成字符串:如itoa(-123)得“-123”;

编写函数前,我们要清楚,整数是个整体,字符串是一个个字符组成:如"123",是由’1’,‘2’,‘3’组成所以,第一步,要把一个整数的各位数的数值弄出来。第二部,把各位的数值转换成字符:如 2 + ‘0’(是数字0)就变成一个字符’2’第三部就是最后的结果啦~~下面的是代码,各位可以体会一下string itoa(int num){ string itoa_num; int len=...

2019-10-01 14:32:49 1569 3

原创 C++中,string 和char [] ,char* 的区别

string类型就是一个特殊的char数组,如:string str=“qwerty”,str[0]‘q’,str[1]‘w’…和字符数组一样,所以,char a[],char b;可以把char[ ]型,char型的直接赋给string,str = a,str = b, 是正确的。各位可以在编译器中试试看点个关注啦加粗样式****## 标题...

2019-09-30 23:59:12 1356

空空如也

空空如也

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

TA关注的人

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