- 博客(22)
- 收藏
- 关注
原创 二叉树的深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [1,5,28,null,null,10,7], 1 / \ 528 / \ 10 7返回它的最大深度3 。 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(...
2022-03-01 12:59:07
213
原创 (剑指offer34)二叉树中和为某一值的路径
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei.
2022-03-01 10:56:19
125
原创 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } ..
2022-02-21 13:12:19
209
原创 把数字翻译成字符串
public int NumToString(int num) { String s = num+""; int a = 1, b = 1; for(int i = 2; i <= s.length(); i++) { String tmp = s.substring(i - 2, i); int c = tmp.compareTo("10") >= 0 && tmp.compare.
2022-02-16 20:35:07
237
原创 求礼物的最大值
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物 public int maxValue(int[][] grid) { int m=grid.length,n=grid[0].length; for(int i=0;i<m;i++){ f
2022-02-16 16:37:57
309
原创 求翻转二叉树
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:4/ \2 7/ \ / \1 3 6 9镜像输出:4/ \7 2/ \ / \9 6 31 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { va...
2022-02-12 12:09:25
242
原创 云计算大作业(计算北京城区出租车数量以及车辆位置点数)
工程目录如下package org.example.Bean;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;//如果没有lombok插件的,将下列注释改写成getter,setter,和相应的构造方法@Data@NoArgsConstructor@AllArgsConstructorpublic class DistrictBean {...
2022-02-11 17:43:58
583
原创 重塑矩阵Java
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。输入:mat = [[1,2],[3,4]], r = 1.
2022-02-11 17:28:22
190
原创 从上到下打印二叉树
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推classTreeNode{ intval; TreeNodeleft; TreeNoderight; TreeNode(intx){val=x;}}classSolution{publicList<List<Integer>...
2022-02-11 14:54:24
158
原创 从上打印二叉树(层序打印)
从上到下按层打印二叉树publicclassTreeNode{ intval; TreeNodeleft; TreeNoderight; TreeNode(intx){val=x;}}classSolution{publicList<List<Integer>>levelOrder(TreeNoderoot){...
2022-02-11 13:54:27
480
原创 从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。Definitionforabinarytreenode.publicclassTreeNode{ intval; TreeNodeleft; TreeNoderight; TreeNode(intx){val=x;}}classSolution{publicint[]levelOrder(Tre...
2022-02-11 13:11:31
767
转载 求投资最大值利润
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。publicintmaxProfit(...
2022-02-09 19:05:32
231
原创 第一个只出现一次的字符
给定一个字符串,找出字符串中第一个只出现一次阿字符,如果没有,返回一个空字符publiccharfirstUniqChar(Strings){HashMap<Character,Boolean>map=newHashMap<>();//hashMap不能存放两个相同的keychar[]sc=s.toCharArray();for(charc:sc)...
2022-02-09 16:33:14
327
原创 旋转数组的最小数字(二分法实现)
数组中存在重复的元素,即求数组中最小的元素publicintminArray(int[]numbers){//用二分法实现inti=0;intj=numbers.length-1;while(i<j){intm=(i+j)/2;//取到中间的值if(numbers[m]>numbers[j])i=m+1;els...
2022-02-09 15:46:15
329
原创 递增二维数组中的查找
publicbooleanfindNumberIn2DArray(int[][]matrix,inttarget){inti=matrix.length-1;intj=0;while(i>=0&&j<matrix[0].length){//第一列的各个数if(matrix[i][j]>target)i...
2022-02-09 15:23:42
150
原创 求数组中两数之和等于另一个数的下标
输入:nums = [2,7,11,15], target = 18输出:[1,2]解释:因为 nums[1] + nums[2] == 18,返回 [1, 2] 。publicint[]twoSum(int[]nums,inttarget){//不用排序List<Integer>list=newArrayList<Integer>();for(inti=0;i<nums.length...
2022-02-08 14:44:11
584
原创 求数组中缺失的数字
在0~n-1的递增数组中,找到缺失的数字例如[0,1,2,3,4,6,7]数组中确实的数字是5publicint findmissingNumber(int[]nums){Arrays.sort(nums);inti=0,j=nums.length-1;while(i<=j){intm=(i+j)/2;if(nums[m]==...
2022-02-08 14:22:29
1250
原创 最大子数组和
给定一个数组,求解数组的最大子数组的和并返回输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。class Solution {publicintmaxSub(int[]nums){int num=0;int max=nums[0];for(int num1 :nums){num=Math.max(num+num1,num1);max=Math.max(max,num);...
2022-02-07 20:53:05
196
原创 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。来源:力扣(LeetCode)classSolution{publicStringreverseLeftWords(Strings,intn){char[]chars=s.toCha...
2022-02-07 14:01:43
316
原创 字符串替换空格
将输入的字符串中的空格转换成%20饼返回classSolution{publicStringreplaceSpace(Strings){char[]chars=s.toCharArray();char[]chars2=newchar[chars.length];Stringss="";for(inti=0;i<chars.length;i++){if...
2022-02-07 13:44:43
193
原创 Java反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。publicclassListNode{intval;ListNodenext;ListNode(intx){val=x;}}classSolution{publicListNodereverseList(ListNodehead){ListNodenode=head,pre=null;while(node!...
2022-02-07 13:36:35
247
原创 用两个栈实现一个队列
栈是先入后出,队列是先入先出定义两个栈,stack1,stack2,分别用来作为添加元素的添加栈,删除元素的删除栈classCQueue{privateStack<Integer>stack1;privateStack<Integer>stack2;publicCQueue(){stack1=newStack<>();stack2=newStack<>(...
2022-02-05 10:04:32
200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅