
算法
dustdawn
学无止境
展开
-
【算法】二分查询
/** * 二分查询 * @author DUSTDAWN * n*(1/2)^x=1,时间复杂度x=log2 n */public class Solution_1 { public static void main(String[] args) { int nums[] = {-1,0,3,9,5,12}; System.out.println(search(nums,3...原创 2019-05-08 21:16:04 · 239 阅读 · 0 评论 -
【排序】堆排序
原创 2019-05-17 22:35:06 · 161 阅读 · 0 评论 -
基本排序算法Java实现
冒泡排序选择排序插入排序希尔排序快速排序归并排序基数排序堆排序原创 2019-05-18 19:50:11 · 234 阅读 · 0 评论 -
【算法】二叉树最大深度的递归和非递归实现
递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { p...原创 2019-06-14 16:23:22 · 1037 阅读 · 0 评论 -
【算法】回溯法解决八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。/** * 八皇后问题 * @author dustdawn * @date 2019/8/29 11:51 */public class Solut...原创 2019-08-29 15:16:28 · 564 阅读 · 0 评论 -
【算法】股神
/** * @author dustdawn * @date 2019/8/29 19:39 */public class GuSheng { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for (int i = 0; i < arr.length; i...原创 2019-09-02 08:18:04 · 252 阅读 · 0 评论 -
【算法】击鼓传花
解题思路见注释/** * @author dustdawn * @date 2019/9/2 8:24 */public class JiGuChuanHua { public static void main(String[] args) { int n = 3; //人数 int m = 3; //次数 transmit(n...原创 2019-09-02 10:08:04 · 914 阅读 · 0 评论 -
【算法】小米9.11笔试:《2048》
《2048》是一款热门的数字游戏。游戏中,每个方块上的数字都有2的幂,数字方块会根据指令整体进行上下左右移动,如果两个数字相同的方块在移动中碰撞,他们就会合成一个新的方块。例如下图为4*4格子的游戏,0表示格子为空,图a为移动前格子中的数字,图b为图a左移后的结果:输入0 0 2 40 2 2 20 4 2 28 8 2 2输出2 4 0 04 2 0 04 4 0 016 ...原创 2019-09-11 22:30:17 · 622 阅读 · 5 评论 -
【剑指offer】二维数组中的查找
package com.dust.acmcoder;/** * @author dustdawn * @date 2019/9/3 8:47 *//** * 题目描述 * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数, * 判断数组中是...原创 2019-09-14 17:42:56 · 231 阅读 · 0 评论 -
【剑指offer】全题与答案解析(Java)待更新
【剑指offer】二维数组中的查找【剑指offer】斐波那契数列递归和非递归【剑指offer】正则表达式匹配原创 2019-09-21 12:08:32 · 284 阅读 · 0 评论 -
【剑指offer】斐波那契数列递归和非递归
package com.dust.acmcoder;/** * @author dustdawn * @date 2019/9/3 22:11 *//** * 题目描述 * 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 * * n<=39 */public class Fibonacci { //递归...原创 2019-09-14 17:58:37 · 198 阅读 · 0 评论 -
【剑指offer】正则表达式匹配
leetcode 10给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。‘.’ 匹配任意单个字符'’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输...原创 2019-09-15 17:18:28 · 204 阅读 · 0 评论 -
【排序】基数排序
原创 2019-05-16 20:13:53 · 244 阅读 · 0 评论 -
【排序】快速排序
原创 2019-05-16 17:18:55 · 164 阅读 · 0 评论 -
【排序】希尔排序
原创 2019-05-16 16:55:04 · 180 阅读 · 0 评论 -
【算法】回文数
/** * 回文数 (判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。) * @author DUSTDAWN *反转一半 */public class Solution_3 { public static void main(String args[]) { System.out.println(isPalindrome(121)); ...原创 2019-05-08 22:20:45 · 183 阅读 · 0 评论 -
【算法】整数反转
/** * 整数反转 (给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。) * 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 * [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 * @author DUSTDAWN * */public class Solution_2 { public st...原创 2019-05-08 21:46:31 · 358 阅读 · 0 评论 -
【算法】罗马数字转数字
/** * 罗马数字转数字 * @author DUSTDAWN * 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 I 可以放在 V (5...原创 2019-05-08 22:16:23 · 557 阅读 · 0 评论 -
【算法】两数之和
/** * 两数之和(从整型数组中找出两数,和为目标数) * @author DUSTDAWN * */public class Solution_5 { public static void main(String[] args) { int nums[] = {2,7,11,15}; System.out.println("["+twoSum(nums,9)[0]+","+...原创 2019-05-08 22:38:06 · 1166 阅读 · 0 评论 -
斐波那契数列解法及其优化解法
使用非递归解法复杂度更低/** * 斐波那契数列 * @author DUSTDAWN * */public class Solution_6 { public static void main(String[] args) { System.out.println(Fibonacci(-10)); System.out.println(FiBest(-10)); } /...原创 2019-05-08 23:07:01 · 288 阅读 · 0 评论 -
【排序】基本排序算法(待更新)
package com.dust.mianshi;/**排序算法@author DUSTDAWN/public class Solution_7 {/** :冒泡排序 O(n^2)*/public static void bubbleSort(int[] array) {if(array.length ==0)return;for(int i = 0;i<a...原创 2019-05-09 01:05:31 · 455 阅读 · 0 评论 -
【算法】汉诺塔递归和非递归实现
/** * :汉诺塔问题 * @author DUSTDAWN * */public class Solution_8 { /** * a:起点位 * b:辅助位 * c:目标位 */ static int count = 0; /* * 递归实现 */ public static void Hanoi(int n,char a,char b,char c...原创 2019-05-10 14:30:26 · 654 阅读 · 0 评论 -
【排序】冒泡排序
优化,当一次遍历中没有交换说明排序已经完成原创 2019-05-16 15:58:14 · 192 阅读 · 0 评论 -
【排序】选择排序
原创 2019-05-16 16:10:42 · 202 阅读 · 0 评论 -
【排序】插入排序
原创 2019-05-16 16:30:14 · 176 阅读 · 0 评论 -
【剑指offer】链表中倒数第k个结点
package com.dust.acmcoder;/** * @author dustdawn * @date 2019/9/4 13:59 *//** * 题目描述 * 输入一个链表,输出该链表中倒数第k个结点。 */public class FindKthToTail { //思路:前结点快k-1步,当前结点走到末结点,当前结点即为目标结点 publi...原创 2019-09-21 15:12:30 · 174 阅读 · 0 评论