算法
自然鸟神
我热爱编程,搜索引擎
展开
-
阿里面试真题:二分查找算法
其实这个题目并不难,但是却是很实用,因为很多同学对于异常条件吃不准的话就会有问题。看看JDK自带的二分查找吧/** * Searches a range of * the specified array of longs for the specified value using the * binary search algorithm. * T...原创 2020-01-18 10:58:18 · 804 阅读 · 0 评论 -
【排序类算法】:快速排序
public class FastSort{ public static void main(String []args){ System.out.println("Hello World"); int[] a = {12,20,5,16,15,1,30,45,23,9}; int start = 0; int end ...转载 2019-01-22 16:54:43 · 306 阅读 · 0 评论 -
【数组类算法】:调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 public class Solution { public void reOrderArray(int [] array) { int jishu=0; int ...转载 2019-01-22 16:35:34 · 260 阅读 · 0 评论 -
【数组类算法】:最多有多少个点在一条直线上
问题描述:给出二维平面上的n个点,求最多有多少点在同一条直线上。样例:给出4个点:(1, 2), (3, 6), (0, 0), (1, 3)。一条直线上的点最多有3个。算法思想:点和点在不在一条直线上,关键两点之间的斜率是否相同。开始自己写了一些,但过于理想化,且复杂,没有考虑全面,并且没有考虑到使用map集合。最后这种还是从从网上百度出来的: public int maxP...转载 2019-01-22 15:46:52 · 1370 阅读 · 0 评论 -
【数组类算法】:第k大元素
问题描述:在数组中找到第k大的元素样例:给出数组[9,3,2,4,8],第三大的元素是4;给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推挑战:要求时间复杂度为O(n),空间复杂度为O(1)算法设计:首先对这个数列使用快速排序算法进行从大到小排序,然后再遍历寻找第k大数据。此算法的重点难点应该在于快速排序public cla...转载 2019-01-22 11:32:01 · 297 阅读 · 0 评论 -
算法杂项
简单介绍一下包含的内容:动态规划题:♥问题一:最低消耗问题 ♥问题二:生小牛的故事♥♥问题三:计算有多少种最长的递增序列♥♥问题四:给数字N,以1...N为节点能构建多少颗不同二叉搜索树♥♥问题五:矩阵连乘♥♥♥问题七:凸多边形最优三角剖分字符串相关题:♥问题一:字符串匹配求两个字符串的最大公共连续子串♥问题二:基本计算器♥♥问题三:字符串匹配有哪些...转载 2019-01-17 10:50:24 · 198 阅读 · 0 评论 -
算法:最长回文子串详解
最近面试对于算法自从ACM后就再也没有碰过了,还有就是现在已经从C转为JAVA了,编程的方式真的有时候不一样。先上代码吧,从网上搜的很多代码我发现很多要不就不是很对,所以自己决定写了一个。 /** * 最长回文子串 * @param args */public static void main(String[] args) { Scanner sc=new Scanner(原创 2016-08-16 10:32:48 · 311 阅读 · 0 评论 -
Java算法篇:冒泡排序
public class BubbleSorts { public static void main(String[] args) { // TODO Auto-generated method stubint[] a= {1,3,2,6,5,9,8};//bubbleSortOne(a, a.length);//bubbleSortTwo(a, a.l原创 2016-06-15 11:18:02 · 343 阅读 · 0 评论 -
获取一个数字的最高位的几种算法。
对于正整数而言:二进制的话,可以通过位运算和二分快速确定一个整数的前导0个数。十进制,可以把整数打印到一个字符数组里:ssprintf(str,"%d",a);然后取第一个元素:printf("%c",str[0]);这样虽然输出也比较费时,但相对除法来说还是快了些。对小于100000000于整数而言:if(x/100000000) x/=100000000原创 2016-06-14 16:23:56 · 30764 阅读 · 0 评论 -
递归调用(一)
学习编程的时候老师总是不建议使用递归,一些书上至今也是这么建议的。但是递归在二叉树上的应用即优美又稍显复杂。所以弄清楚递归的本质是分治是很有必要的。将大规模问题缩小。为什么要用递归编程里面估计最让人摸不着头脑的基本算法就是递归了。很多时候我们看明白一个复杂的递归都有点费时间,尤其对模型所描述的问题概念不清的时候,想要自己设计一个递归那么就更是有难度了。很多不理解递归的人(今天在cs原创 2016-06-27 09:53:46 · 4339 阅读 · 2 评论 -
一道对称数组的JAVA算法题
输入 3输出:0 0 00 1 00 1 2输入 4输出 :0 0 0 00 1 1 10 1 2 20 1 2 3程序样例:Scanner a=new Scanner(System)原创 2016-04-22 15:44:05 · 768 阅读 · 0 评论 -
蛇形填数
描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4输入直接输入方陈的维数,即n的值。(n输出输出结果是蛇形方陈。样例输入3样例输出7 8 16 9 25 4 3转载 2014-11-19 21:02:52 · 540 阅读 · 4 评论