Algorithm
文章平均质量分 92
程序员小2
全网同名,公众号、领资料
展开
-
【算法】喝汽水,1瓶汽水m元,n个空瓶可以换一瓶汽水,给money元,可以换多少汽水
思路:先计算下money元钱能买多少瓶汽水,也就有多少个空瓶,再让空瓶兑换汽水,空瓶数=余的空瓶数+第二次兑换的空瓶数,依次循环类推;public class Main { public int totalNum(int money, int m, int n) { if (money <= 0) { return 0;...原创 2020-03-26 08:30:55 · 2506 阅读 · 0 评论 -
【算法】两个线程 交替打印奇偶数 (java实现)
package com.billkang.algorithm;/** * 两个线程 交替打印奇偶数 * * @author Kangbin * @date 2018-11-28 */public class OddEven { public static class Num { int i = 1; /** * 线程交...原创 2018-11-28 14:47:48 · 3510 阅读 · 1 评论 -
【算法】排序-快速排序 (java实现)
package com.billkang.algorithm.sort;import java.util.Arrays;/** * 快速排序 * * @author Kangbin * @date 2018-11-29 */public class QuickSort { public void quickSort(int[] arr) { quick...原创 2018-11-29 14:20:41 · 2454 阅读 · 0 评论 -
【算法】排序-冒泡排序 (java实现)
package com.billkang.algorithm.sort;import java.util.Arrays;/** * 冒泡排序 * * @author Kangbin * @date 2018-11-29 */public class BubbleSort { public void bubbleSort(int[] arr) { for...原创 2018-11-29 13:30:43 · 2486 阅读 · 0 评论 -
【算法】排序-归并排序 (java实现)
package com.billkang.algorithm.sort;import java.util.Arrays;/** * 归并排序 * @author Kangbin * @date 2018-11-28 */public class MergeSort { public void mergeSort(int[] arr) { //在排...原创 2018-11-28 22:51:05 · 2442 阅读 · 0 评论 -
【算法】空格替换成20% (java实现)
package com.billkang.algorithm;/** * 空格替换成20% * @author Kangbin * @date 2018-11-17 */public class ReplaceSpace { public String replaceSpaces1(String s) { return s.replace(" ", "20%...原创 2018-11-17 19:09:33 · 3140 阅读 · 0 评论 -
【算法】给定两个字符串,确定一个字符串重新排列后能否变成另一个字符串(java实现)
分析:两个字符串的长度都不相同时,不可能是变位词 package com.billkang.algorithm;import java.util.Arrays;/** * 给定两个字符串,确定一个字符串重新排列后能否变成另一个字符串 * * @author Kangbin * @date 2018-11-17 */public class Permutation {...原创 2018-11-17 17:37:22 · 4981 阅读 · 0 评论 -
【算法】字符串反转的多种实现 (java代码实现)
原本还想再写一个不使用额外内存的,发现貌似java实现不了, 如果哪位大神能实现欢迎补充package com.billkang.algorithm;/** * 字符串反转 * * @author Kangbin * @date 2018-11-17 */public class StrReverse { /** * 1.通过stringbuilder的re...原创 2018-11-17 17:15:31 · 1994 阅读 · 0 评论 -
【算法】判断一个字符串的所有字符是否全部不同 java代码实现
package com.billkang.algorithm;import java.util.HashSet;import java.util.Set;/** * * @author Kangbin * @date 2018-11-17 */public class UniqueChar { /** * 判断一个字符串的所有字符是否全部不同 * ...原创 2018-11-17 16:52:43 · 1951 阅读 · 0 评论 -
20行code实现贪吃蛇功能
看到一位大神用20行代码就写出了一个贪吃蛇的小游戏,感觉被惊艳到了,就试着读了一下这段代码,阅读过程中不断为作者写法的巧妙而叫绝,其中我发现自己对运算符优先级和一些js的技巧不是很清楚,所以看完之后决定把思路分享出来,方便和我一样的小白学习。我对代码稍稍做了些修改,并添加了一些注释,方便理解。html lang="en">head> meta char原创 2017-07-01 22:52:38 · 1598 阅读 · 0 评论 -
程序员的数学修养
可能有很多朋友在网上看过Google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数。据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答了这道题,在浏览器的地址栏中输入这个答案,就可以进入下一轮的测试,整个测试过程如同一个数学迷宫,直到你转载 2017-06-01 22:26:32 · 427 阅读 · 0 评论 -
二叉树的层次遍历
借助于一个队列根据层次遍历的顺序,每一层都是从左到右的遍历输出。先将根节点入队,当前节点是队头节点,将其出队并访问,如果当前节点的左节点不为空将左节点入队,如果当前节点的右节点不为空将其入队。所以出队顺序也是从左到右依次出队。import java.util.LinkedList; public class LevelOrder { public原创 2017-05-09 12:23:29 · 1082 阅读 · 0 评论 -
【重要】B树 B-树 B+树 B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关转载 2017-05-05 21:55:42 · 531 阅读 · 0 评论 -
[算法]n阶台阶,一次走一步或两步,有多少种走法?
递归实现.重要的是理解这个逻辑假设有f(n)种走法,当走到N-1阶台阶时,有f(n-1)种走法,再走一步走完。当走到n-2阶台阶时,有f(n-2)种走法, 再走1+1或2,走完。其中走1+1和走到n-1阶时的f(n-1)重复。所以f(n)=f(n-1))+f(n-2)public int findStep(int n) { if(n==0 ||原创 2017-05-10 22:24:51 · 21968 阅读 · 1 评论 -
[java]求数组中第2大的数
一种思路是利用两次冒泡法,因为第一次冒泡,最大的在a[n-1],第二次冒泡后,次最大值在a[n-2]这样直接返回即可。核心代码如下:public int secondMaxNum(int[] a) { int n = a.length; for (int i = 0; i < 2; i++) { for (int j = 0; j < n- i - 1; j++) {原创 2017-05-10 22:06:12 · 5056 阅读 · 0 评论 -
生产者/消费者问题的多种Java实现方式
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实转载 2017-02-11 11:03:11 · 318 阅读 · 0 评论 -
[Algorithm]随机发牌
从card[51]开始扁历,把当前的card 与card[rand.nextInt(51)]交换,遍历一次后,也就随机得差不多了对于52张牌,实现一个随机打算扑克牌顺序的程序。52张牌使用 int 数组模拟。该算法的难点是如何保证随机性?有个经典算法shuffle,思路就是遍历数组,在剩下的元素里再随机取一个元素,然后再在剩下的元素里再随机取一个元素。每次取完元素后,我们就不会原创 2016-11-26 17:37:36 · 1425 阅读 · 0 评论 -
[算法]括号字符串是否合法
括号字符串是否合法某个字符串只包括(和),判断其中的括号是否匹配正确,比如(()())正确,((())()错误,不允许使用栈。这种类似题的常见思路是栈,对于左括号入栈,如果遇到右括号,判断此时栈顶是不是左括号,是则将其出栈,不是则该括号序列不合法。面试官要求不能使用栈,可以使用计数器,利用int count字段。123456789101112131415原创 2016-11-26 17:10:22 · 2876 阅读 · 0 评论