
算法
猿来是9527
这个作者很懒,什么都没留下…
展开
-
算法 随笔
插入排序 small 2 big private void sortSmall2Big() { int[] array = {5, 6, 4, 2, 1, 3}; for (int j = 1; j <array.length; j++) { int key = array[j]; int i = j -原创 2015-10-12 23:12:05 · 461 阅读 · 0 评论 -
java 矩阵查找
//忽略代码风格...大小写比较随意了 private static final int[][] matrix = { {1, 2, 4, 5, 6, 7}, {3, 3, 7, 11, 7, 8}, {4, 5, 8, 12, 14, 16}, {4, 6, 9, 14, 15, 17},原创 2017-01-13 13:08:39 · 528 阅读 · 0 评论 -
java 求最长回文子串
/** * 求最长回文子串 * 子串:连续的 * 暴力穷举 */ public static String get01() { String str = "googlepppe"; int length = str.length(); String finalStr = ""; for原创 2017-01-09 23:18:56 · 613 阅读 · 0 评论 -
二叉树 遍历
学点算法,挺有意思的 /** * 分层遍历二叉树(按层次从上往下,从左往右) * */ private static void specialTraversal(Node node){ if(node == null){ System.out.print("--null--"); return;原创 2017-03-14 18:30:30 · 395 阅读 · 0 评论 -
W大姐的面试题
宛大姐,测试妹子,年轻的宝妈,做事可靠,为人乐观开朗,这么好的测试妹子也要出去找工作了……心疼3秒钟。她遇到的面试题如下:一个字符串“aaaabbbccdaaaaa”将其压缩成“4a3b2c1d5a”,然后对压缩后的字符串按照数目从大到小进行排序,如“ 5a4a4c2b1d”(其他因素暂且不用考虑,比如字符相同是否叠加)。于是我们发出这样的疑问:------原创 2017-05-05 13:04:24 · 560 阅读 · 1 评论 -
一个合并有序数组的算法题
一个合并有序数组的算法题浏览脉脉的时候,有个匿名帖子,据说是去面试,人家给出的算法题: 合并两个有序数组,如代码所示那种,合并以后保持有序。趁着午间休息,写了一下: public static void testMergeSequentialArray() { int[] b1 = {1, 3, 9, 11}; int[] b2 = {2, 3, 8, 10,原创 2017-06-06 12:52:06 · 441 阅读 · 0 评论 -
算法:判断单链表成环与否
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using extra space?package com.bxh.algorithms.linklist;/** * Created by bxh on 8/1/17. */pub原创 2017-08-01 10:59:46 · 1354 阅读 · 0 评论 -
算法:细胞分裂
package com.bxh.algorithms.OtherAlgorithms;/** * Created by bxh on 7/26/17. */import java.util.Queue;import java.util.concurrent.LinkedBlockingDeque;/** * 一个细胞,每小时分裂成两个,分裂三次以后,本体会死掉。 * n个小时原创 2017-07-26 12:30:33 · 2729 阅读 · 0 评论 -
算法:走迷宫
package com.bxh.algorithms.OtherAlgorithms;import java.util.Queue;import java.util.concurrent.LinkedBlockingDeque;/** * Created by bxh on 7/27/17. */public class BFS { int[][] maze = {原创 2017-07-27 13:06:19 · 335 阅读 · 0 评论 -
算法:数组+滑动窗口
闲着无聊打开AS撸个小算法吧……给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1原创 2017-09-03 18:03:14 · 1621 阅读 · 1 评论 -
java 找到数组中出现次数超过数组长度一半的那个数字
/** * 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 * 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。 * 由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 */ public int findMoreThanHalfNum(int[] numbers) {原创 2016-12-20 18:05:55 · 3812 阅读 · 0 评论 -
java ‘转圈’打印二维数组
/** * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, * 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 * 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. */ public static void printMatrix原创 2016-12-19 20:22:42 · 789 阅读 · 0 评论 -
java 指数计算
/** * 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 */ public static void testGetExponentOfNum() { double base = Math.random(); int exponent = new Random().nex原创 2016-12-15 20:09:44 · 4732 阅读 · 0 评论 -
java 逆序打印链表的值
在牛客网上看到的在线编程题:输入一个链表,从尾到头打印链表每个节点的值。有个同学写的不错,如下所示: /*************************************************/ /*********************** start *******************/ /*******************************原创 2016-11-30 13:14:20 · 513 阅读 · 0 评论 -
java统计字符串出现次数并打印
/** * 输入字符串,然后输出新的字符串,新字符串显示每个字符及其数量 * 如 aaddvvvf 显示 a2b2v3f1 * * */ public static String string2String() { HashMap m = new HashMap(); int count = 0;原创 2016-12-11 17:37:39 · 1397 阅读 · 0 评论 -
在特殊数组中查找数字
题目:假设存在一个二维数组E,横向与纵向都是递增的,现有一个数字T,请计算T是否在E中。原创 2016-11-20 08:48:01 · 381 阅读 · 0 评论 -
java 二叉树
先感慨下:虽为通信工程毕业,但课程比较传统,偏向于运营商方向,因为历史上来说本院曾经是‘某某邮电学院’,邮电部直属院校五所之一,所以比较传统。《数据结构与算法》没怎么学过,不想最后大部分同学去了运营商或者邮电规划建设部门,我却做了android开发,基础之薄弱真是令我汗颜。虽然平时开发过程中没什么大的感知,但是我知道,如果不补上这一块,差距将一直存在。说实话,‘树’的概念,是我毕业一年原创 2016-12-02 21:01:46 · 254 阅读 · 0 评论 -
java 输入一个整数n,根据n获取Fibonacci数列的第n个值
数学基础:1,1,2,3,5,8,13 and so on前两位特殊,其余各位符合F(n) = F(n-1)+F(n-2); 首先想到递归,如下: public static int fibonacci(int n) { if (n <= 0) { return -1; } else if (n == 1 || n ==原创 2016-12-12 19:22:53 · 4878 阅读 · 0 评论 -
java 使用两个栈实现队列
public class StackToQueue { private static final String TAG ="StackToQueue"; public Stack fStack = new Stack<>(); public Stack sStack = new Stack<>(); public void insert(TestBean be原创 2016-12-05 14:49:41 · 373 阅读 · 0 评论 -
java 平面上在一条直线上最多的点数
/** * 在坐标系的第一象限上有N个点,请问:最多有多少个点在一条直线上? */ public static void testPoints() { Point[] points = new Point[8]; points[0] = new Point(1, 1); points[1] = new Point(2,原创 2016-12-13 18:05:51 · 1680 阅读 · 0 评论 -
java 不使用 “+,-,*,/” 运算符计算两个整数的和
/** * 不使用 +,-,* ,/ 计算两个整数的和 * */ public static void testGetAdd(){ int a = 5;//101 int b = 7;//111 while (b!=0){ int t = a^b; System.out.原创 2016-12-17 10:16:34 · 3147 阅读 · 1 评论 -
java 找出数组中仅出现1次的那个数字
Given an array of integers, every element appears three times except for one. Find that single one.e.g. 数组{1,2,3,1,1,3,2,2,3,54,66,54,54} 中 特殊数字是66,他只出现1次,其他数字出现3次。 /** * Given an原创 2016-12-15 18:52:01 · 418 阅读 · 0 评论 -
一道小题
输入一行命令 command --flag1 p1=a p2=b --flag2 p1=a p2=b,各个单词之间、单词和符号之间都有不确定数量的空格,请解析出命令,将各段命令放置于list中。当解析出----ret----command--flag1p1=ap2=b--flag2p1=ap2=b时认为是正确解析结果。我的方案是:A:正则表达式B:利用String类的s...原创 2019-09-24 10:00:55 · 222 阅读 · 0 评论