算法
君__莫笑
IT小白,请多指教
展开
-
剑指Offer17——Java解法
class Solution { public void printNumber(char[] number){ //0不打印 //找到第一个非0 int i=0; while(i<number.length && number[i] == '0'){ i++; } //找到,开始打印 while(i<number.length){原创 2021-03-11 22:01:06 · 107 阅读 · 0 评论 -
LeetCode刷题小记——二叉树的最大深度
二叉树的最大深度么事刷一刷文章目录二叉树的最大深度题目解法自顶向下自底向上总结自顶向下自底向上自底向上题目解法思路:基于二叉树遍历的基础之上,带有层的信息即可。方法:自顶向下(先序遍历)自底向上(后序遍历)自顶向下思路:孩子的层数总是根节点的层数+1,所以当我们遍历到叶子节点时,更新最大层数值即可。代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val;原创 2020-12-06 21:57:46 · 184 阅读 · 0 评论 -
LeetCode刷题小记——二叉树的层寻遍历
LeetCode刷题小记——层序遍历没事就刷刷文章目录LeetCode刷题小记——层序遍历题目解法迭代递归题目开始干解法迭代——利用队列递归迭代顺序:从上到下,从左到右。很有秩序,多适合用队列啊!迭代的写法其实类似于图的BFS(广度优先搜索)思想:利用队列的先进先出的特点,每次出队一个节点,就把他的孩子往后排,按照左、右的顺序加入队尾(年轻然要讲武德,不许插队)。思路:初始化,根节点入队出队,并把它的孩子加入队尾重复step 2代码:/** * Definiti原创 2020-12-05 22:07:22 · 175 阅读 · 0 评论 -
LeetCode刷题小记——二叉树的后序遍历
LeetCode——二叉树的后序遍历么事就来刷一刷!方法:递归非递归模仿系统栈二次翻转法递归写法先中后一个鬼样子。上代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val)原创 2020-12-01 22:25:06 · 206 阅读 · 4 评论 -
LeetCode刷题小记——二叉树的中序遍历
二叉树的中序遍历没事就练练方法:两大类递归非递归模仿系统栈(模仿递归的过程)手工辅助栈(利用栈的特点)递归写法代码奉上/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this原创 2020-11-30 11:19:11 · 319 阅读 · 1 评论 -
LeetCode刷题小记——二叉树的先序遍历
LeetCode刷题小记——树的先序遍历没事就来刷一刷题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。输入:root = [1,null,2,3]输出:[1,2,3]总共分两大类:递归非递归(迭代)模拟系统栈手工辅助栈递归递归就不说了,太简单。class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer&原创 2020-11-29 21:42:25 · 299 阅读 · 0 评论 -
LeetCode攻坚战--两数相加
两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -...原创 2019-11-27 20:38:20 · 84 阅读 · 0 评论 -
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?import java.util.Arrays;public class Test3 { static int sum = 0...原创 2018-03-28 15:30:56 · 374 阅读 · 0 评论 -
暴力求解---组合(n选m个元素进行组合)
有时候不考虑顺序(即1 2 3 与 3 2 1 算同一个),无法使用全排列,用组合才能解决问题 这里整理了一下我常用的组合算法: 思路:主要利用List存取元素(数组也行),在取的时候注意怎么取就行了!import java.util.ArrayList;import java.util.List;public class Combine{ static List<Int...原创 2018-03-21 17:24:27 · 697 阅读 · 0 评论 -
暴力求解 --- 全排列
对于求解范围比较小的问题来说,暴力求解(也称枚举、穷举法)是最简单直接的方式。思想:将n个元素看做n层,利用元素交换,让剩余可选元素(元素不可重复)在当前层都出现一次。 import java.util.Arrays;public class Demo { public static void main(String[] args) { int[] a =...原创 2018-03-21 17:19:05 · 923 阅读 · 0 评论 -
蓝桥杯 承压计算
承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。 金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 ...原创 2018-03-07 18:00:14 · 860 阅读 · 1 评论 -
蓝桥杯 纸牌三角形
纸牌三角形A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 下图就是一种排法(如有对齐问题,参看p1.png)。这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。注意:需要提交的是一个整数,不要提交任何多余内容。思路: 读完题,首先想到的就是暴力求解(全排...原创 2018-03-07 17:40:39 · 687 阅读 · 0 评论 -
蓝桥杯-最大最小公倍数
问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式 输入一个正整数N。输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 刚看到这道题的时候,果断暴力+回溯啊,我估计大部分同学和我一样的想法,胸有成竹的撸起袖子开干。 写完后,用题中的数据已测试,OK,提交代码。 结果傻眼原创 2018-01-28 19:23:37 · 324 阅读 · 0 评论 -
基础练习 2n皇后问题
基础练习 2n皇后问题问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。 输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,原创 2018-01-27 18:33:07 · 515 阅读 · 0 评论 -
算法训练 求先序排列
问题描述 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所求先序排列 样例输入 BADC BDCA 样例输出 ABCD**思路:对于一棵树,后序排列的最后一项一定是先序排列的第一项(根节点),同理,对于子树也是满足的。配合着中序原创 2018-02-01 19:47:37 · 406 阅读 · 0 评论