
Algorithm
星空dream
找准自己的定位
展开
-
【算法系列之十四】最大子序和
1、题目描述给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。2、解法及解题思路public class MaximumSubarray { public static void ...原创 2020-01-17 16:17:11 · 251 阅读 · 0 评论 -
【算法系列之十三】二叉树两叶节点的最大距离
1、题目描述给定一棵二叉树,计算这课二叉树的直径长度,即为二叉树任意两个节点间的最长路径。比如: 这棵二叉树的最长路径为3。2、解题思路使用递归进行求解,每次递归的过程中,先求出以某个节点为树根的二叉树的左子树的最长深度maxLeft、右子树的最长深度maxRight,并在递归函数中用一个变量maxLen来保存任意两个节点间的最长路径。在求出...原创 2019-11-13 17:12:49 · 529 阅读 · 0 评论 -
【算法系列之十二】最接近的三数之和
给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).public class Three...原创 2018-12-18 15:38:37 · 359 阅读 · 0 评论 -
【算法系列之十一】k个一组翻转链表
给出一个链表,每k个节点一组进行翻转,并返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回:2->1->4->3->5当k= 3 时,应当返回:3->2->...原创 2018-12-17 20:16:18 · 315 阅读 · 0 评论 -
【算法系列之十】三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]import ...原创 2018-12-03 20:28:18 · 567 阅读 · 0 评论 -
【算法系列之九】合并两个有序数组
给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...原创 2018-11-27 14:41:50 · 241 阅读 · 0 评论 -
【算法系列之八】删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。public class Solution { public static void main(St...原创 2018-11-26 14:43:20 · 163 阅读 · 0 评论 -
【算法系列之七】合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * public class ListNode { * ...原创 2018-11-14 18:09:30 · 314 阅读 · 0 评论 -
【算法系列之六】两整数之和
不使用运算符+和-,计算两整数a、b之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1方法一:递归public static int getSum1(int a, int b) { if ((a & b) != 0) { // 判断是否有进位 return getSum...原创 2018-11-14 11:39:55 · 370 阅读 · 0 评论 -
【算法系列之五】对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[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说明:如果你可以运用递归和迭代两种方法解决...转载 2018-11-12 20:44:15 · 254 阅读 · 0 评论 -
【算法系列之四】柱状图储水
题目:给定一个数组,每个位置的值代表一个高度,那么整个数组可以看做是一个直方图,如果把这个直方图当作容器的话,求这个容器能装多少水例如:3,1,2,4代表第一个位置高度为3,第二个位置高度为1,以此类推,这个直方图能装3格水。如图红色地方:思路:很多人会误想到正出什么波峰波谷,这就从开始就错了,比如两个相邻的波峰之外还有更大的波峰,这么说来你中间这连个波峰波谷算的值多白算了...转载 2018-10-30 20:45:10 · 828 阅读 · 0 评论 -
【算法系列之三】单链表反转
问题:实现单链表反转答案:链表准备class Node { private int Data;// 数据域 private Node Next;// 指针域 public Node(int Data) { // super(); this.Data = Data; } public int getData() { return Data; } publi...原创 2018-01-13 12:12:31 · 250 阅读 · 0 评论 -
【算法系列之二】反波兰式
问题:用反波兰式表示算术表达式的值。有效运算符是+,-,*,/。每个操作数可以是一个整数或另一个表达式。一些例子:["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"原创 2018-01-05 15:10:55 · 307 阅读 · 0 评论 -
【算法系列之一】二叉树最小深度
题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.答案:public class MinimumDepthOf...原创 2018-01-05 14:50:35 · 418 阅读 · 0 评论 -
排序算法之归并排序
public class MergeSort { public static void main(String[] args) { int[] arr = {9, 8, 7, 6, 5, 4, 3, 2, 1}; sort(arr); System.out.println(Arrays.toString(arr)); } ...原创 2020-04-30 20:49:21 · 322 阅读 · 0 评论 -
排序算法之快速排序
class MySort { public static void main(String[] args) { int[] arr = {44,44,2,32,54,22,88,77,99,11}; quickSort(arr,0,arr.length-1); for(int x : arr) { System.out.print(x+" / "); } ...原创 2016-10-12 13:01:22 · 267 阅读 · 0 评论 -
排序算法之冒泡排序,选择排序
public class Sort { public static void main(String[] args) { int[] arr = { 24, 69, 80, 57, 13 }; bubbleSort(arr); selectSort(arr); for (int s : arr) { System.out.print(s + "/"); }...原创 2016-08-16 12:22:08 · 329 阅读 · 0 评论 -
面试题之实现1分2分5分组成2角问题
三种硬币,用数学排列组合的思想,就是从3种不同的物品中选择然后再组合,当然每种物品选择的数量是变化的,所以就设定1分的数量为i,2分的数量为j,5分的数量为k.接着再想想,因为最终的结果是2角,也就是20分,所以1分的数量不会超过20,2分的数量不会超过10,5分的数量不会超过4public class Money { public static void main(Str...原创 2016-10-12 12:52:06 · 636 阅读 · 0 评论