java
1505180417
目标,java后端工程师
展开
-
如何优雅的写出字符串计算器(java 递归篇)(代码可直接使用)
如上,在上一篇中,我们使用中缀转后缀的形式完成字符串计算器的功能,那么有的同学说,我不懂中缀后缀啊,我就想直接算,行不行啊? 行,请看下文。这次我们使用的思路是递归,也是我在面试过程中最先想到的,但是面试的时候比较慌,20分钟没有理清思路。首先,我们仍然需要一个函数来判断字符是否是数字 public static boolean isNum(char c){ return c...原创 2020-04-25 20:14:30 · 927 阅读 · 1 评论 -
如何优雅的写出一个字符串计算器(JAVA)
字符串计算器坐标2020-4-24经过-华为二面面试官给了一张动态图,问我:二十分钟能写出一个简单的字符串计算器吗?略微思考:应该可以吧接着在混乱的思路中,想用递归,又想用栈,最后写出一个无数空指针异常的计算器,结束后,痛定思痛,今天就教大家写一个字符串计算器。首先,我们一定需要一个函数来判断字符是否是数字, public static boolean isNum(char x){...原创 2020-04-24 16:57:46 · 2329 阅读 · 1 评论 -
leetcode 106. 从中序与后序遍历序列构造二叉树
题目:注意:你可以假设树中没有重复的元素。代码如下class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) { return help(inorder,0,inorder.length-1,postorder,0,postorder.length-1); } p...原创 2019-12-12 21:26:00 · 108 阅读 · 0 评论 -
leetcode 264. 丑数 II
题目:编写一个程序,找出第 n 个丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ugly-number-...原创 2019-12-09 22:43:58 · 99 阅读 · 0 评论 -
leetcode 221. 最大正方形
题目:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处...原创 2019-12-09 21:15:18 · 101 阅读 · 0 评论 -
leetcode 动态规划 63. 不同路径 II
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],...原创 2019-12-09 20:41:33 · 115 阅读 · 0 评论 -
leetcode 572. 另一个树的子树
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3/ \4 5/ 1 2给定的树 t:4/ 1 2返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。示例 2:给定的树 s: 3/ \...原创 2019-12-09 00:51:59 · 124 阅读 · 0 评论 -
leetcode 513. 找树左下角的值
题目:给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入:2/ 1 3输出:1示例 2:输入: 1 / \ 2 3 / / \4 5 6 / 7输出:7注意: 您可以假设树(即给定的根节点)不为 NULL。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...原创 2019-12-09 00:15:08 · 185 阅读 · 0 评论 -
leetcode 235. 二叉搜索树的最近公共祖先
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ances...原创 2019-12-08 22:56:26 · 163 阅读 · 0 评论 -
leetcode 199. 二叉树的右视图
题目:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:1 <—/ 2 3 <—\ 5 4 <—来源:力扣(LeetCode)链接:https://le...原创 2019-12-08 22:47:48 · 116 阅读 · 0 评论 -
leetcode 129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点...原创 2019-12-08 20:53:13 · 89 阅读 · 0 评论 -
leetcode 116. 填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。解...原创 2019-12-08 20:26:40 · 123 阅读 · 0 评论 -
leetcode 113. 路径总和 II
题目:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1...原创 2019-12-08 20:07:57 · 91 阅读 · 0 评论 -
leetcode103 二叉树锯齿层次遍历
题目:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回锯齿形层次遍历如下:[[3],[20,9],[15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.co...原创 2019-12-08 19:16:16 · 148 阅读 · 0 评论 -
javaweb 原生servlet实现简单的网站登陆/注册功能
XML文档配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...原创 2019-12-01 23:58:34 · 869 阅读 · 0 评论 -
面向对象思考 -Triangle2D类
题目要求:类中包括以下几个方面名为p1 p2 p3的数据域,三个数据域均有get和set方法,类型为MyPoint。一个无参构造方法,创建坐标为(0 0)(1 1 )(2 5)的三角形。一个指定点的构造方法一个返回面积的getArea方法一个返回周长的getPerimeter方法如果给定点p在三角形中,方法contains(MyPoint p)返回true;如果给定三角形在三角形内...原创 2019-11-02 17:32:53 · 911 阅读 · 0 评论 -
leetcode 20.有效的括号
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系...原创 2019-10-28 00:11:24 · 137 阅读 · 0 评论 -
leetcode 121.买卖股票的最佳时机
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock著作权归领扣网络所有。商业转载请...原创 2019-10-28 00:05:01 · 134 阅读 · 0 评论 -
leetcode 4.寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数.你可以假设 nums1 和 nums2 不会同时为空。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class...原创 2019-10-27 23:56:53 · 119 阅读 · 0 评论 -
leetcode 1.两数之和
题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(Le...原创 2019-10-27 23:44:52 · 112 阅读 · 0 评论 -
leetcode 871.最低加油次数
题目:汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 1 英里就会用掉 1 升汽油。当汽车到达加油站时,它可能停下来加油,将所有汽油...原创 2019-10-27 23:18:12 · 249 阅读 · 0 评论 -
leetcode 887.鸡蛋掉落
题目:你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X...原创 2019-10-26 19:20:20 · 187 阅读 · 0 评论 -
leetcode 1216.验证回文字符串||
题目:给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」。所谓「K 回文」:如果可以通过从字符串中删去最多 k 个字符将其转换为回文,那么这个字符串就是一个「K 回文」。示例:输入:s = “abcdeca”, k = 2输出:true解释:删除字符 “b” 和 “e”。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...原创 2019-10-26 17:30:59 · 297 阅读 · 0 评论 -
leetcode 23.合并K个排序链表
题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-k-sor...原创 2019-10-26 17:15:53 · 157 阅读 · 0 评论 -
leetcode 42.接雨水
题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6来源:力扣(LeetCode)链接:...原创 2019-10-26 17:11:10 · 183 阅读 · 0 评论 -
leetcode 979.在二叉树中分配硬币
题目:给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。返回使每个结点上只有一枚硬币所需的移动次数。来源:力扣(LeetCode)链接:https://leetcode...原创 2019-10-25 18:37:01 · 211 阅读 · 0 评论 -
leetcode 88.合并两个有序数组
题目 :给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...原创 2019-10-25 18:19:02 · 87 阅读 · 0 评论 -
leetcode 754 到达终点数字
题目:在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。第 n 次移动(从 1 开始),可以走 n 步。返回到达终点需要的最小移动次数来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reach-a-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码cla...原创 2019-10-25 18:14:15 · 281 阅读 · 0 评论 -
leetcode 637题 二叉树层平均值
题目:给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.代码class Solution { public List<Double> averageOfLevels(TreeNode root) { help(root,0); List<Double> li =new ArrayList(); fo...原创 2019-10-25 17:52:22 · 137 阅读 · 0 评论 -
leetcode 1103.分糖果||
题目:排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给...原创 2019-10-25 17:38:16 · 183 阅读 · 0 评论 -
leetcode 897.递增顺序查找树
给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。代码如下class Solution { public TreeNode increasingBST(TreeNode root) { inorder(root); TreeNode m =new TreeNode(0); ...原创 2019-10-25 16:48:17 · 320 阅读 · 1 评论 -
leetcode 703.数据流中的第K大元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-la...原创 2019-10-25 16:25:55 · 229 阅读 · 0 评论 -
leetcode 232 .用栈实现队列
使用java自带的stack实现队列操作class MyQueue { Stack<Integer> stack ;//定义成员变量stack /** Initialize your data structure here. */ public MyQueue()//构造方法,初始化栈 { stack = new Stack&...原创 2019-10-25 15:51:03 · 102 阅读 · 0 评论 -
leetcode 442.数组中重复的数据
题目: 找到数组中重复的数字。class Solution{ public List<Integer> findDuplicates(int[] nums) { Set<Integer> set = new HashSet(); List<Integer> list= new ArrayList(); ...原创 2019-10-25 15:37:37 · 122 阅读 · 0 评论 -
leetcode 110.平衡二叉树
题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。代码如下class Solution { public boolean isBalanced(TreeNode root) { int x =help(root); if(x==-1) ...原创 2019-10-25 14:56:03 · 131 阅读 · 0 评论 -
leetcode 95.不同的二叉搜索树||
题目:给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。代码class Solution { public List<TreeNode> generateTrees(int n) { if (n == 0) return new ArrayList<>(); return helper(1, n); ...原创 2019-10-25 14:16:00 · 127 阅读 · 0 评论 -
leetcode 892.三维形体的表面积 高频考题
题目:在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes著作权归领扣网络所有。商业转载请联系官方授...原创 2019-10-25 13:23:31 · 164 阅读 · 0 评论 -
leetcode 429.N叉树的层序遍历
题目:给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。N叉树定义class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { ...原创 2019-10-24 15:44:02 · 115 阅读 · 0 评论 -
leetcode 575.分糖果
题目:给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。示...原创 2019-10-24 15:15:34 · 211 阅读 · 0 评论 -
leetcode 1217.玩筹码
题目:数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):将第 i 个筹码向左或者右移动 2 个单位,代价为 0。将第 i 个筹码向左或者右移动 1 个单位,代价为 1。最开始的时候,同一位置上也可能放着两个或者更多的筹码。返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。来源:力扣(Leet...原创 2019-10-24 15:07:31 · 217 阅读 · 0 评论