![](https://img-blog.csdnimg.cn/20200620081647128.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
记录数据结构和算法的学习过程
善守的大龙猫
昔之善战者,先为不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能为不可胜,不能使敌之必可胜。故曰:胜可知,而不可为!
成为专家!成为专家!
展开
-
程序员刷 leetcode 经常陷入刷了忘忘了刷的尴尬局面怎么办?
一、刷了忘的原因是:没有真正理解解题思路 解题不应该要求做过的问题都能记住答案。忘了说明以前做的时候就没有真正理解,试图回忆解题步骤是不正确的,应该尝试回忆解题思路。但更有效的做法是 在刷题的时候就深刻理解解题思路。 检验一道问题是不是真正掌握,正是须要在我们完全忘记了解题思路以后,如何一点一点通过题目的条件分析出解题的思路、用到的算法和数据结构。 二、多想想为什么,而不要记住是什么 刷题就是一遍一遍做题,巩固知识点的过程。平常做题的时候没有思路,看题解是非常正常的。但是我们在看题解的时候,不要只看解法,记原创 2021-03-07 23:33:02 · 2061 阅读 · 4 评论 -
算法是一个程序员的内功
算法是一个程序员的内功,是想进入大厂的必要之路。 因为想过两年要进入大厂,所以现在必须要加强算法的训练。原创 2021-03-06 01:04:51 · 119 阅读 · 0 评论 -
栈的使用场景
当数据的处理顺序要与接收顺序相反时(LIFO)last in first out,就可以用栈。 像文字处理器的“撤销”动作,或网络应用程序的函数调用,你应该都会需要栈来实现。 在处理括号的校验时,也可以用到栈这种数据结构 ...原创 2020-12-14 19:52:42 · 884 阅读 · 0 评论 -
单链表面试题
1.求单链表的有效节点的个数 2.查找单链表的倒数第K个节点【新浪面试题】 3.单链表的反转【腾讯面试题】 4.从尾到头打印单链表【百度:要求方式1.反向遍历 2.Stack栈】 5.合并两个有序的单链表,合并之后的链表依然有序 ...原创 2020-06-20 23:50:45 · 176 阅读 · 0 评论 -
斐波那契数
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 不建议使用递归,因为递归在N很大时,效率非常慢,下面这种执行效率非常高 /** * 斐波那契数 * 不建议使用递归,因为在递归时,计算的效率会非常慢。 * @param n .原创 2020-06-20 08:46:54 · 272 阅读 · 0 评论 -
时间复杂度及空间复杂度
时间复杂度与空间复杂度用大O来标示。 简单来解释就是算法运行的时间与空间随着规模的扩大,时间与空间扩大的趋势。原创 2020-06-12 23:44:42 · 88 阅读 · 0 评论 -
利用数据创建普通队列及环形队列
文章目录1.利用数组创建一个队列。2.测试代码如下:3.利用数组创建环形队列4.环形队列的测试代码 1.利用数组创建一个队列。 package com.queue; import java.util.Scanner; public class ArrayQueueDemo { public static void main(String[] args) { //测试一把 //创建一个队列 ArrayQueue queue = new ArrayQueue(3); char key =原创 2020-06-14 21:51:21 · 127 阅读 · 0 评论 -
String的反转函数reverse
/** * Causes this character sequence to be replaced by the reverse of * the sequence. If there are any surrogate pairs included in the * sequence, these are treated as single charac...原创 2019-12-11 17:07:52 · 1686 阅读 · 0 评论 -
二叉树的最大深度
获取二叉树的最大深度的最简单的方式就是进行递归 首先判断是否为空,对root.right及root.left进行递归,取最大值加1即是二叉树的最大深度 class Solution { public int maxDepth(TreeNode root) { if(null == root) return 0; return 1 + Math.max(max...原创 2019-12-19 16:04:09 · 81 阅读 · 0 评论 -
验证回文串解答分析
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例 2: 输入: “race a car” 输出: false 解题思路 看到这一题,首先想到去除标点符号,然后去除空格,转换为统一的大小写。 最后遍历...原创 2019-12-13 10:20:55 · 94 阅读 · 0 评论 -
验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 看到这一题,首先想到的就是递归。 ...原创 2019-12-19 17:06:37 · 110 阅读 · 0 评论