![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 55
NjustMEMS_ZJ
砥砺前行
展开
-
【LeetCode】【C】321. 拼接最大数时--隔两个月两次刷的代码
前言LeetCode做题的数量多不如质量高,在基本算法都掌握的基础上,关键是能够掌握寻找答案的思路以及以及一些细节上的技巧性处理。通过两次刷这道题,最后对比代码可以发现,在方向对的前提下,两次的编码细节是不同的,有些地方用了不同的处理思想,第一次解答这个题是看了答案之后做的,有些地方潜移默化用了答案里的技巧,当时没有察觉,当自己再次刷题时,有可能会出现一些自己的土方法,通过对比,才能将更好的方法吸收。话不多说,上代码第一次(查看答案后的编码)static inline int MAX(int x,原创 2021-04-05 21:14:12 · 135 阅读 · 0 评论 -
【C】二叉树遍历的递归与非递归写法
二叉树遍历的递归与非递归写法_C语言前言中序遍历的非递归写法后序遍历的非递归写法完整代码前言二叉树的三种遍历的递归写法,只要理解思想,几行代码就可以完成。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最简单,后序遍历最难。中序遍历的非递归写法非递归算法,必然要用到栈(可参考完整代码中栈的实现)。这里着重讲下中序遍历的写法。void Inor...原创 2020-02-02 23:08:43 · 309 阅读 · 0 评论 -
【LeetCode】5.最长的回文子串
暴力解法思路1、做一个子函数,用于检测输入的字符串是否是回文串2、使用双指针,头指针从字符串开始处遍历,尾指针每次均从结尾处开始,检查头尾指针之间的字符串是否是回文串,若是,且长度大于之前的长度,则更新,否则进行下次检查,注意,大循环的结束条件可以随着找到回文子串的长度而更新。代码#include <stdio.h>#include <string.h>#in...原创 2020-02-16 15:37:39 · 107 阅读 · 0 评论 -
【LeetCode】94. 二叉树的中序遍历
题目描述给定一个二叉树,返回它的中序 遍历。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal解题思路树的遍历有两种方法,一种是递归,一种是循环,递归的方法比较简单,而循环必然要用到堆栈,对于先序遍历和中序遍历,在处理根节点时,由于要先后访问左右子树,因此访问左子树时,要暂时将根...原创 2020-02-06 14:52:48 · 160 阅读 · 0 评论 -
【LeetCode】165. 比较版本号
思路根据字符".“将输入的字符串分割开,然后动态进行比较,一旦不相等则返回分割的函数可以自己写,也可以利用库函数strtok如果利用库函数,需要一次性分割完成,因此需要预先定义一个数组,将分割好的数存起来,最后进行比较如果自己写分割的函数,可以利用两个指针记录”."之间的字符串,之后进行比较。代码#include <string.h>#include <stdlib...原创 2020-02-22 17:57:27 · 127 阅读 · 0 评论 -
【LeetCode】274. H指数
思路原创 2020-02-22 20:23:17 · 178 阅读 · 0 评论 -
【LeetCode】179. 最大数
思路这道题的关键是设计比较函数,利用qsort进行排序,排序之后进行输出。有几个比较坑的特殊情况需要特别处理1、输入比较的参数为02、返回的字符串为“00000……”比较函数的思路:可以直接按照题意,比较连接之后ab大还是ba大。代码#include <string.h>#include <stdlib.h> // for malloc(), free()...原创 2020-02-23 11:21:06 · 188 阅读 · 0 评论 -
【LeetCode】98. 验证二叉搜索树
思路这道题乍一看,觉得挺简单,但是有一个点比较容易忽略,例如下面这个用例 5 / \ 1 4 / \ 3 6对于3这个节点,虽然满足小于4,但是作为5的右子树,其所有子节点都应该大于5,因此这棵树不是二叉搜索树。很自然想到采用递归的方式通过记录上下限的方式,保证子树上所有节点满足要求,递归至右子树时,更新下限,递归至左子树时更新上限。最...原创 2020-02-23 21:00:08 · 122 阅读 · 0 评论