经典算法题
codeOct
这个作者很懒,什么都没留下…
展开
-
Java判断两个二叉树是否相同+递归
题目要求给定两个二叉树,判断他们是否相同。注意:必须是完全相同,如果节点值、值得顺序不同都视为不同的树。力扣练习题:LeetCode-100_相同的树思路:首先判断两树null的情况。如果A树null且B树不null或者A树不null且B树null,那么可以肯定两树肯定不相等,返回false。if ((A == null && B != null) || (A != null && B ==null)) { return false;原创 2020-11-20 00:33:54 · 605 阅读 · 0 评论 -
通过栈操作求棒球比赛结果
你现在是一场采特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。“C原创 2020-11-15 22:47:52 · 101 阅读 · 0 评论 -
Map哈希表键值对高效查找两数之和
题目描述:给定一个整型数组nums[ ]和一个目标值target,要求找到数组中两数之和为target的下标。暴力法:双循环。外层遍历数组,内层遍历数组,两两之间进行相加比较。这样效率低下,时间复杂度(On^2)。Map哈希表:哈希表中存在一个键和对应的一个值,简称键值对。遍历当前nums[ ]数组。如果target - nums[i]的值不在哈希表中,将nums[ ] 中的值和对应的下标存在哈希表中。直到在哈希表中找到,或者遍历完数组退出。步骤用nums[] = {3,6,9,4,7}原创 2020-11-06 22:03:42 · 358 阅读 · 0 评论 -
数组实现循环单端队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out)。 入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头。循环队列:将队头和队尾以某种方式关联起来,在逻辑上达到循环一圈的目的。力扣上有原题,我是按照力扣上的题目要求写的。力扣622–设计循环队列思路:通过数组作为底层结构。定义一个头指针,指向第一个元素。定义一个尾指针,永远指向最后一个数据的下一个位置。当要添加原创 2020-11-05 22:53:10 · 181 阅读 · 0 评论 -
给定两个整型数组, 交换两个数组的内容
给定两个整型数组,假设两个数组长度相等,交换两个数组内容。思路:通过循环,遍历其中某一个数组。(因为两个数组长度相等)遍历时候,定义一个中间变量,用来交换两个整型数组相同下标的内容。package day7_10_17;import java.util.Arrays;/** * @author:fover * @date:2020/10/18 1:21 * @version:1.0 * @function:给定两个整型数组, 交换两个数组的内容,假设两个数组长度相同 */pu原创 2020-10-18 01:38:00 · 815 阅读 · 0 评论 -
奇数放到数组后面
给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面。思路:定义两个指针,左指针指向最左边,右指针指向最右边。左指针往右走,寻找第一个奇数,右指针往左走,寻找第一个偶数。交换左右两个数。左指针+1,右指针-1。循环进行2-3-4步骤。package day7_10_17;import java.util.Arrays;/** * @author:fover * @date:2020/10/17 20:45 * @version:1.0 * @function:原创 2020-10-18 01:19:23 · 175 阅读 · 0 评论 -
冒泡排序(基础班-->优化版-->优化终极版)
冒泡排序1. 所谓的冒泡排序就是通过两两相邻数组间的比较,将大的沉到下面,小的放上面。假设有一个待排序的数组{3,9,6,4,7}。相邻数组之间进行比较。第一轮两两数组之间进行比较,我们俗称第一趟:经过第一趟的相比,我们发现最大的数字9沉到了最下面。接下来进行第二趟的比较:经过第二趟的比较,我们发现次大数字7到了倒数第二位。接下来进行第三趟和第四趟的比较:每当我们进行一趟相比较,数组中的一个数字便会被确定位置。5个数字,一共经过4趟比较,便可以确定他的序列。2. 基础版冒泡排序。代原创 2020-10-17 00:09:19 · 149 阅读 · 0 评论 -
青蛙跳台阶(普通版)循环+递归实现
青蛙跳台阶1. 问题要求有n阶台阶,一只青蛙一次只能跳1个台阶或者2个台阶,问青蛙跳上这个n阶台阶一共有多少种跳法。跳1个台或者跳2个台阶的顺序不一样,次数不一样都算不同的跳法。2. 思路分析如果只有1阶台阶,那么青蛙只需要跳一级便可以。共1种跳法。如果有2阶台阶。那么它可以跳1个台阶,再跳1个台阶,这是第一种跳法。或者直接跳2个台阶。共2种跳法如果是3阶台阶。第一种跳法可以1个台阶1个台阶的跳(如图红线),第二种跳法可以跳1个台阶再跳2个台阶(如图蓝线),第三种跳法可以跳2个台原创 2020-10-16 00:14:11 · 370 阅读 · 0 评论