![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
实战中学习,学习中巩固
Lewalker59
这个作者很懒,什么都没留下…
展开
-
LeetCode第240题:搜索二维矩阵II(中等)
题目难度:中等编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。题解题解1:对符合条件的行进行二分查找class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int xlen = matrix.size()原创 2020-05-18 10:22:23 · 187 阅读 · 0 评论 -
LeetCode第102题:二叉树的层序遍历(中等)
题目难度:中等给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。题解解法1:使用队列广度优先遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL原创 2020-05-13 10:15:34 · 129 阅读 · 0 评论 -
LeetCode第228题:汇总区间(中等)
题目难度:中等给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。示例 1:输入: [0,1,2,4,5,7]输出: [“0->2”,“4->5”,“7”]解释: 0,1,2 可组成一个连续的区间; 4,5可组成一个连续的区间。示例 2:输入: [0,2,3,4,6,8,9]输出: [“0”,“2->4”,“6”,“8->9”]解释: 2,3...原创 2020-05-07 11:03:17 · 171 阅读 · 0 评论 -
LeetCode第227题:基本计算器II(中等)
题目难度:中等实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: “3+2*2”输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的...原创 2020-05-06 14:40:09 · 268 阅读 · 0 评论 -
C++常用类型判断及转换方法
isalnum()判断一个字符是否为数字或者字母isalpha()用来判断一个字符是否为字母,如果是字符则返回非零,否则返回零。islower()用来判断一个字符是否为小写字母isupper()用来判断一个字符是否为大写字母。声明在头文件<cctype>中tolower()函数是把字符串都转化为小写字母touppre()函数是把字符串都转化为大写字母...原创 2020-05-06 12:01:02 · 787 阅读 · 0 评论 -
LeetCode第226题:翻转二叉树(简单)
题目:难度:简单翻转一棵二叉树。示例:题解:解法一:广度优先遍历+队列解题思路利用队列对结点进行存储。以广度优先遍历的方式,对每一个结点的左右结点交换位置,并将子节点存入队列中。直到队列为空遍历结束。/** * Definition for a binary tree node. * struct TreeNode { * int val; * T...原创 2020-05-06 11:05:02 · 183 阅读 · 0 评论 -
LeetCode第200题:岛屿数量(中等)
题目:难度:中等给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入: 11110 11010 11000 00000输出: 1示例 2:输入: 11000 11000 00100 00011输出: 3解释...原创 2020-05-05 11:09:21 · 251 阅读 · 0 评论 -
LeetCode第223题:矩形面积(中等)
题目:难度:中等在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。每个矩形由其左下顶点和右上顶点坐标表示,如图所示。示例:输入: -3, 0, 3, 4, 0, -1, 9, 2输出: 45说明: 假设矩形面积不会超出 int 的范围。题解:直接暴力性能还不错接近双百解题思路首先要判断两个矩形是否相交的情况,如果相交就计算相交的面积然后就是计算两个矩形面积...原创 2020-05-05 10:59:26 · 201 阅读 · 0 评论 -
C++11特性:auto关键字(转)
C++98 auto早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期,这是多余的,因为就算不使用auto声明,变量依旧拥有自动的生命期:int a =10 ; //拥有自动生命期auto int b = 20 ;//拥有自动生命期static int c = 30 ;//延长了生命期C++98中的auto多余且极少使用,C...转载 2020-02-16 23:59:54 · 183 阅读 · 0 评论 -
2(2N+1) 魔方阵(经典算法)
说明方阵的维度整体来看是偶数,但是其实是一个奇数乘以一个偶数,例如6X6,其中6=2X3,我们也称这种方阵与单偶数方阵。解法如果您会解奇数魔术方阵,要解这种方阵也就不难理解,首先令n=2(2m+1),并将整个方阵看作是数个奇数方阵的组合,如下所示:首先依序将A、B、C、D四个位置,依奇数方阵的规则填入数字,填完之后,方阵中各行的和就相同了,但列与对角线则否,此时必须在A-D与C- B之间...原创 2020-02-05 18:08:54 · 574 阅读 · 0 评论 -
4N 魔方阵(经典算法)
说明与 奇数魔方阵 相同,在于求各行、各列与各对角线的和相等,而这次方阵的维度是4的倍数。解法先来看看4X4方阵的解法:根据上图说明,就是一个从左上由1开始顺序填,但遇对角线不填;另一个由左上由16开始倒序填,但只填在对角线,再将两个合起来就是解答了;如果N大于2,则以 4X4为单位画对角线:至于对角线的位置该如何判断,有两个公式,如下所示:由于方阵的维度为4,所有需要将方阵均等分...原创 2020-02-05 17:29:02 · 790 阅读 · 0 评论 -
奇数魔方阵(经典算法)
说明将1到n(为奇数)的数字排列在nxn的方阵上,且各行、各列与各对角线的和必须相同,如下所示:解法一般程式语言的阵列索引多由0开始,为了计算方便,我们利用索引1到n的部份。第一个数字放在第一行第一列的正中央。在计算向右(左)上或向下时,我们可以将索引值除以N值,如果得到余数为1就向下,否则就往右(左)上。若上一个数在第一行,则下一个数放在行数为N,列数为j+1的位置。若上一个数...原创 2020-02-05 15:39:37 · 3269 阅读 · 1 评论