![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构算法
奋斗的小杨
这个作者很懒,什么都没留下…
展开
-
内功之排序算法
内功之排序算法排序无论在实际工作中还是在面试中难免会遇到,相当于武侠小说中的内功,一定要多多复习掌握原理,牢记掌握。以下是各个排序的总目录。1.选择排序2.冒泡排序3.插入排序4.快速排序5.归并排序6.堆排序7.希尔排序...原创 2019-10-16 16:21:22 · 401 阅读 · 1 评论 -
输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值
/** * 题目2 输入一个整型数组,数组里有正数也有负数。数组中一个或连 * 续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 * * @param arr 输入数组 * @return 最大的连续子数组和 */ public static int findGreatestSumOfSubArray(int[] arr) { /...原创 2019-07-11 19:22:05 · 3616 阅读 · 0 评论 -
输入一个字符串,打印出该字符事中字符的所有排列。
/** * 题目:输入一个字符串,打印出该字符事中字符的所有排列。例如输入字符串abc。 * 则打印出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 * * @param chars 待排序的字符数组 */public static void permutation(char[] chars, int begin) { ...原创 2019-07-09 19:22:46 · 2331 阅读 · 0 评论 -
层序打印二叉树
/** * 从上往下打印出二叉树的每个结点,向一层的结点按照从左往右的顺序打印。 * 例如下的二叉树, * 8 * / \ * 6 10 * / \ / \ * 5 7 9 11 * 则依次打印出8、6、10、5、3 、9、11. * * @param root 树的结点 */public static void p...原创 2019-07-03 16:39:40 · 622 阅读 · 0 评论 -
二维数组判断数组中是否含有该整数。
* 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。* 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public static boolean find(int[][] matrix, int number) { // 输入条件判断 if (matrix == null || ma...原创 2019-06-27 15:19:03 · 625 阅读 · 0 评论 -
给定单向链表的头指针和一个结点指针,定义一个函数在0(1)时间删除该结点,
给定单向链表的头指针和一个结点指针,定义一个函数在0(1)时间删除该结点,public static ListNode deleteNode(ListNode head, ListNode toBeDeleted) { // 如果输入参数有空值就返回表头结点 if (head == null || toBeDeleted == null) { ...原创 2019-06-24 10:07:06 · 826 阅读 · 0 评论 -
输入个链表的头结点,从尾到头反过来打印出每个结点的值
输入个链表的头结点,从尾到头反过来打印出每个结点的值 public static void printListInverselyUsingIteration(ListNode root) { Stack<ListNode> stack = new Stack<>(); while (root != null) { ...原创 2019-06-25 19:18:09 · 412 阅读 · 0 评论 -
写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项
* 写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项* @param n Fibonacci数的项数* @return 第n项的结果在数学上,费波那契数列是以递归的方法来定义: (n≧2)public static long fibonacci(int n) { // 当输入非正整数的时候返回0 if (n <= 0...原创 2019-06-20 17:00:42 · 15311 阅读 · 0 评论 -
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字定义变量 一个是要找的数 一个是出现的次数 遍历数组找到相同的次数++否则抵消次数-- 最后结束的数就是可能大于数组一半的数 1 2 2 5 4 5 5 5 ...原创 2019-06-13 10:23:37 · 3032 阅读 · 0 评论 -
效率最快的求闰年算法
闰年计算1.能被4整除而不能被100整除.(如2004年就是闰年,1900年不是)2.能被400整除.(如2000年是闰年)算法public boolean isLeapYear(long year) { return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0...原创 2018-02-26 12:01:20 · 6183 阅读 · 0 评论 -
牛客排序题集锦
对于一个int数组,请编写一个冒泡排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,2,3],6[1,2,2,3,3,5]import java.util.*;public class BubbleSort { public int[] bubbleSort(int[] A, int n) {原创 2016-09-24 16:15:12 · 336 阅读 · 0 评论