- 博客(111)
- 收藏
- 关注
原创 leetcode 刷题汇总
leetcode3 最长公共子串_C++leetcode 15 三数之和leetcode17电话号码的字母组合_C++_medleetcode33 搜索旋转排序数组_C++_medleetcode46全排列_C++_medleetcode 64. 最小路径和_C++_动态规划_Mediumleetcode 70 爬楼梯问题——c++_easy_动态规划问题leercod...
2019-08-18 00:18:15 190
原创 Leetcode279. 完全平方数_med_C++
给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路:利用动态规划的思想。public: int numSq...
2020-03-21 11:47:15 225
原创 安卓开发——菜单选择函数疑问
public boolean onOptionsItemSelected(MenuItem item) { int itemThatWasClickedId = item.getItemId(); if (itemThatWasClickedId == R.id.action_search) { Context context = Ma...
2020-03-18 10:38:11 436
原创 Leectcode417太平洋大西洋水流问题_med_C++
给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示:输出坐标的顺序不重要m 和 n 都小于150示例:给...
2020-03-14 18:03:25 355
原创 Leetcode130被围绕的区域_med_C++
给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为...
2020-03-12 22:29:40 247
原创 安卓开发:在新建的项目中导入外部模块时报错
在新建的项目中导入外部模块时报错原因是新的安卓版本推出了AndroidX要取代原来的support库。创建新项目的时候,如果没有勾选“Use androidx.* artifacts”,那么导入外部模块不会报错;只有勾选了“Use androidx.* artifacts”,导入外部模块才会报上面的错。勾选界面如下图所示:而且一旦勾选了“Use androidx.* arti...
2020-03-08 11:48:23 368
原创 [1105]leetcode617合并二叉树——easy——C++
定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 ...
2019-11-05 23:39:11 147
原创 leetcode547. 朋友圈_C++_Med
班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示...
2019-09-15 23:47:06 578
原创 leetcode33 搜索旋转排序数组_C++_med
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2]...
2019-09-09 16:39:49 174
原创 leetcode695. 岛屿的最大面积_C++_med
给定一个包含了一些 0 和 1的非空二维数组grid, 一个岛屿是由四个方向 (水平或垂直) 的1(代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1...
2019-09-09 15:31:34 221
原创 C++ string类的相关操作总结
1.初始化string a;string a("hiaya");string a = "hiaya";string a(10,'c'); //"ccccccccc"string a = string(10,'c');2. 读入string a;cin>>a; //从有字符开始输入 到下一处空白停止 getline(cin,a); //使用getline读取...
2019-09-02 11:16:20 203
原创 leetcode148排序链表_C++_med
在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路:这个时间复杂度,肯定是要用归并排序,快速排序,堆排序之一的排序的算...
2019-08-31 21:37:06 148
原创 leetcode142. 环形链表 II_C++_med
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。思路: 判断链表是否有环(快慢指针), 判断链表环的长度(快慢指针,记录相遇结点,再回到相遇结点时走了一圈)判断链表入口结点(快慢指针...
2019-08-31 20:41:14 179
原创 leetcode23. 合并K个排序链表_C++_hard
合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6思路:是给两个有序链表排序的变形,主要在于为了提高速度,不要一个一个加上去,而是两个变成一个长的,再两个变成一个长...
2019-08-31 17:29:55 205
原创 leetcode151翻转字符串里的单词_C++_med
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出:...
2019-08-28 22:54:02 230
原创 567字符串的排列_C++_med
给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False注意:输...
2019-08-28 21:25:50 235
原创 leetcode3 最长公共子串_C++
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...
2019-08-28 19:05:28 347
原创 236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3...
2019-08-28 09:52:59 140
原创 线程回收的方式和线程结束的方式
终止线程的几种方法终止某个线程而不终止整个进程,有三种方法:从线程主函数return。这种方法对主控线程不适用,从main函数return相当于调用exit。一个线程可以调用pthread_cancel终止同一进程中的另一个线程。线程可以调用pthread_exit终止自己。等待线程 •由于一个进程中的多个线程是共享数据段的,通常在线程退出之后,退出线程所占用的资源...
2019-08-27 18:19:42 464
原创 进程间通信的几种方式
Linux下:1.管道: 管道通信的方式就是共享文件通信的方式,在连接的两个进程之间建立一个共享文件,也称pipe文件,可以传输大量数据。它与一般相比有些特殊:1.专门用于通信 2.只能单向传送 3.在读写操作中,进程之间需要的同步和互斥是由系统自动执行的。分为无名管道: 临时无名文件。在物理上由文件系统的高速缓冲区构成,很少启动外部设备 。因为是临时的,所以文件被关系后,文件就不存在...
2019-08-27 18:06:25 553
原创 进程和线程的区别和联系
进程和线程的区别和联系执行的程序被称为进程,操作系统会为进程单独分配所需的资源,所以进程是单独分配和管理资源的一个基本单位。但是进程存在着很多缺陷,主要集中在两点:(1).进程只能在同一时间干一件事情,如果想同时干两件事或多件事情,进程就无能为力了。(2).进程在执行的过程中如果由于某种原因阻塞了,例如等待输入,整个进程就会挂起,其他与输入无关的工作也必须等待输入结束后才能顺序执行。...
2019-08-27 16:42:51 168
原创 sql查询优化方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id f...
2019-08-26 11:22:57 160
转载 HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
原文:https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A一、HTTP的历史早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了 WEB2.0 以来,我们...
2019-08-25 21:26:13 129
原创 什么是进程?什么是线程?进程和线程之间的区别是什么?
什么是进程?什么是线程?进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。线程与进程的一个主要区别是,统一...
2019-08-25 21:14:07 2315
原创 网络编程WebSocket 和socket、HTTP的区别和联系
一、WebSocket 是什么?WebSocket是HTML5规范提出的一种协议;目前除了完犊子的IE浏览器,其他浏览器都基本支持。他是一种协议,万变不离其宗,也是基于TCP协议的;和HTTP协议是并存的两种协议。WebSocket是HTML5中的协议。HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工...
2019-08-25 19:16:53 348
原创 leetcode673最长递增子序列的个数_C++_med
给定一个未排序的整数数组,找到最长递增子序列的个数。示例 1:输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例 2:输入: [2,2,2,2,2]输出: 5解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。注意:给定的数组长度不超过 2000 并且结果一定是3...
2019-08-25 16:31:05 192
原创 674. 最长连续递增序列_C++_easy
给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:数组长度不会超...
2019-08-25 15:25:07 342
原创 leetcode343整数拆分_C++_med
给定一个正整数n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。说明: 你可以假设n不小于 2 且不大于 58。思路描述:运用动态规划的思想。每...
2019-08-25 13:59:10 657
原创 leetcode46全排列_C++_med
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路:这道题的关键是如何知道要加入的这个数字是不是已经加过了呢,所以要建立一个相对的bool型的vector,去作为标志,判断对应位置上的数字是否被加入过。并且要...
2019-08-24 22:07:30 213
原创 leetcode131 分割回文串_C++_Med
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入:"aab"输出:[ ["aa","b"], ["a","a","b"]]思路分析:运用递归回溯的思想,这道理毫无疑问是每一种可能性都要判断,没有什么投机取巧的方法。所以我们采用递归的思想,关键是找到递归的思路。我们让函数从字符串第index开始分割一个子串,长...
2019-08-24 21:31:23 261
原创 leetcode17电话号码的字母组合_C++_med
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路:“树形问题”,使用递归的方式...
2019-08-23 10:12:10 252
原创 leetcode129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代...
2019-08-22 15:13:46 126
原创 leetcode113. 路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...
2019-08-22 11:16:07 169
原创 leetcode110平衡二叉树_C++_easy
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4...
2019-08-21 23:01:25 190
原创 leetcode101. 对称二叉树_C++_easy
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3思路:判断是否镜像,是否对称,是否相当,毫无疑问都是用...
2019-08-21 21:10:10 171
原创 leetcode226 翻转二叉树
翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1思路:有关树的问题要想到递归,递归的想法很简单,将根的左右子树互换之后,再已左右子树为根继续互换。递归最重要的就是终止条件,如果传入的是空指针,或者叶节...
2019-08-21 20:41:50 112
原创 leetcode 206 反转链表增加——C++代码
思路很快就有了:非递归的思路,这回和上回有点区别,但是都通过啦 开心/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */clas...
2019-08-18 00:16:50 100
原创 C++中string、char *、char[]的转换 string 和int 的转换
一、string转char*。 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); 1.data()方法,如:1 string str = "hello";2 const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式 同时有一点...
2019-08-14 16:53:08 426
原创 leetcode 404 左叶子之和——easy_c++
计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24解题思路:思路一:利用递归的方式,主要是想好如何判断是左叶子点,其实是判断叶子点的上一个节点A的左节点B存在,并且这个左节点B没有子节点。然后在遍历A的右节点。具体代码如下:/** * De...
2019-07-27 21:19:36 117
原创 leetcode 112 路径总和_easy_c++
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...
2019-07-23 21:46:09 106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人