![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
倒骑驴走着瞧
不积跬步无以至千里
展开
-
找二叉树中任意两个节点的最近的公共父节点
大概分为两种情况,一种是pq两个节点在树或者子树的同一边package test;public class SmallCommonParent { public static void main(String[] args) { /* * 第一种情况,p和q在root的两边 * root * / \ * p a * \ * q * */ // TreeNode p = new TreeNode("p");//原创 2021-10-12 13:14:04 · 560 阅读 · 0 评论 -
原地删除有序数组中的相同元素
原地删除有序数组中的相同元素,并输出返回新的数组的长度,并打印内容,空间复杂度为O(1) public static void main(String[] args) { int[] aa = { 1, 1, 1, 3, 3, 4, 4, 5, 6, 8, 8 }; int length = removeDuplicates(aa); System.out.println("长度为:" + length); for (int i = 0; i < length; i++) {原创 2021-10-09 10:47:27 · 121 阅读 · 0 评论 -
算法-删除排序数组中的重复项(双指针法)
力扣(LeetCode)地址题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函原创 2020-08-12 15:21:32 · 241 阅读 · 0 评论 -
算法-盛最多水的容器(双指针法)
力扣(LeetCode)连接 盛最多水的容器题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。解体思路:双指针从两边向中间运算,比较左右两个容器壁大小,让一方小的主动向另外一方靠近(因容器盛水量大小受小的一方影响,如果挪动大的,加上两壁距离-1,这样只原创 2020-08-12 14:07:18 · 171 阅读 · 0 评论 -
java爬楼梯问题
问题假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1级或者 2级,那么你有多少种方法爬到楼梯的顶部?public class ClimbSairs { public static void main(String[] args) { System.out.println("爬1个台阶有" + climb(1) + "种走法"); System.out.println("爬2个台阶有" + climb(2) + "种走法"); System.out.println("爬3个台阶有"原创 2020-06-28 18:21:00 · 1059 阅读 · 0 评论 -
Java算法题-禁止登录
题目:为了提升用户帐号的安全性,H站决定实施一项措施:对在1小时内(注:00:00:00与01:00:00仍视为在1小时内)出现5次或5次以上密码错误的账户,暂时禁止该帐号被登录。 现在小Hi拿到了某日全部密码错误的日志,他想知道有哪些帐号被暂时禁止登录。Input第一行包含一个整数N,代表记录的行数。 以下N行每行包含一个整数A和一个时间T。其中是A代表密码错误的账号ID;T代表...原创 2019-04-07 12:12:15 · 199 阅读 · 0 评论