- 博客(18)
- 收藏
- 关注
原创 合并两个排序的数组
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例:输入:A = [1,2,3,0,0,0], m = 3B = [2,5,6], n = 3输出: [1,2,2,3,5,6]思路:从后往前输出数组class Solution { public void merge(int[] A, int m, int[] B, int n) {
2021-04-16 00:59:31
536
原创 263.丑数I
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 6输出:true解释:6 = 2 × 3class Solution { public boolean isUgly(int n) { if(n<=0){ return false; } int factors[]={2,3,5};
2021-04-12 17:55:20
112
原创 JZ.25 合并两个有序链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:递归/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x;
2021-04-09 17:28:33
135
原创 JZ.54. 二叉搜索树的第k大节点
给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 4思路:中序遍历为递增,故使用其逆序(即左-根-右换成右-根-左)的第K大结点。class Solution { int k,res; public int kthLargest(TreeNode root, int k) { this.k=k; dfs(root); return
2021-04-08 14:31:17
123
原创 JZ.28 对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3思路:递归public class isDucheng { public boolean isSymmetric(TreeNode root){
2021-04-07 17:49:10
103
原创 知道快排吗?思路?时间复杂度?最坏时间复杂度?
面试常考之快速排序:1.一般选序列第一个为piovt,2.从后往前找比p小的数使之放在p之前,从头向尾找比p大的数,使之在p之后。–>得到第一轮序列3.递归(arr,0,j-1),(arr,j+1,high)平均时间复杂度 nlogn 最坏时间复杂:n²(已有序)在这里插入代码片package com.base;public class QSort { public static void quickSort(int[] arr, int low, int high) {
2021-04-07 17:21:12
259
原创 JZ.07.重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ 9 20/ 15 7 int [] preorder; HashMap<Integer,Integer> dic=new HashMap<>(); public TreeNode bu
2021-04-06 00:02:19
74
原创 234.回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true思路:1.将结点放入数组中。2.设置首、尾两个指针,循环结束条件为两者相等。3.若存在list.get[front].equals(list.get[back])不成立则返回false;PS:注意此处用equalsclass Solution { public boolean isPalindrome(ListNode hea
2021-04-05 21:37:45
59
原创 JZ.42. 连续子数组的最大和
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路:动态规划class Solution { public int maxSubArray(int[] nums) { int res = nums[0]; for(int i = 1; i <
2021-04-04 04:14:06
221
原创 JZ.21.调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。思路:临时数组class Solution { public int[] exchange(int[] nums) { int left=0; int right=nums.length-1; int temp[]
2021-04-03 01:46:03
121
原创 JZ.55 - II. 平衡二叉树
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。class Solution { public boolean isBalanced(TreeNode root) { if(root==null) return true;
2021-04-02 01:29:13
72
原创 JZ.24链表的逆序
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:定义一个cur头指针:遍历链表;定义pre;定义nextnode标记下一个结点。/** * Definition for singly-linked list. * public class ListNode { * int val; *
2021-04-01 03:25:27
71
原创 JZ.55 - I. 二叉树的深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo
2021-04-01 03:21:03
227
原创 114.[中等] 二叉树展开为链表
给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例 1:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示例 2:输入:root = []输出:[]示例 3:输入:root = [0]输出:[0]思路:1.递归左
2021-03-31 01:35:42
119
原创 JZ.27二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4/ 2 7/ \ / 1 3 6 9镜像输出: 4/ 7 2/ \ / 9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]思路:1.利用 TreeNode temp交换左右结点。2.递归左、右子树。3.返回根节点。/* * Definition for a binary tree node.
2021-03-31 01:21:21
143
原创 京东数科java开发实习面试
3.17京东科技:1.Mysql怎么体现数据库的一致性2.数据库索引用过哪些?建表的时候该怎么设计索引?索引的优点是什么唯一索引:CREATE INDEX PersonIndex ON Person (LastName);唯一的索引意味着两个行不能拥有相同的索引值增加查询速度3.除了加索引还有什么优化数据库的办法?a)创建索引:创建合适的索引,我们就可以现在索引中查询,查询到以后直接找对应的记录。b)分表 :当一张表的数据比较多或者一张表的某些字段的值比较多并且很少使用时,采用水平分表和垂直
2021-03-18 20:46:25
242
原创 携程2021春招实习面试:
携程2021春招实习面试:1.要求使用SQL统计出每个项目每月的累积使用次数。2.有缘数。字符之和是指对应的ASCII值之和。样例中,Zhang和Zhan去掉‘g’后,剩余子串相等,因此第一个字的缘分值为asc(‘g’)=103;而San和Ai则需全部删除San和Ai,其缘分值为asc(“San”)+asc(“Ai”)=290+170=460。因此Zhang San和Zhan Ai的缘分值为103+460=563。边界场景,一人名字较长者,譬如,Ali Ba Ba和Xie Cheng,那最后一个Ba需要
2021-03-18 20:43:45
282
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人