算法
东豫虬髯
从前种种,譬如昨日死
以后种种,譬如今日生/2018/9/4
展开
-
LintCode 5.第k大元素
第一种方法:快排思想就是先用快排排好序,由小到大进行排序,则第k大元素就是倒数第k个。public void quickSort(int[] arr,int low,int high){ int i,j,temp,t; if(low>high){ return; } i=low; j=high; //temp就是基准位 temp = arr[low]...转载 2019-11-25 22:51:37 · 98 阅读 · 0 评论 -
快速排序实践复杂度分析
一 、快排思想:先从数列中指定一个数作为基准数。进行分区,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。再对左右区间重复第二步,直到各区间只有一个数。设定一个数据源数组dataSource设定第一个数为中间数,大于此数的放在其右边,小于等于此数的放在其左边。大致思路是:首先,我先用一个变量来保存中间数的值及78;然后设定数组的firstindex为i,las...转载 2019-11-25 22:38:52 · 1536 阅读 · 0 评论 -
时间复杂度和空间复杂度的理解
一、时间复杂度「 大O符号表示法 」,即 T(n) = O(f(n))我们先来看个例子:for(i=1; i<=n; ++i){ j = i; j++;}通过「 大O符号表示法 」,这段代码的时间复杂度为:O(n) ,为什么呢?在 大O符号表示法中,时间复杂度的公式是: T(n) = O( f(n) ),其中f(n) 表示每行代码执行次数之和,而 O 表示正比例关系,这个...转载 2019-11-23 22:47:46 · 176 阅读 · 0 评论 -
leetcode 17. 电话号码的字母组合(回溯)
https://blog.csdn.net/weixin_42130471/article/details/82696847转载 2019-09-16 23:49:35 · 88 阅读 · 0 评论 -
人民币的读法转换
package zoom;import java.util.Arrays;import java.util.Scanner;public class Main1 {// 编写一个程序,将浮点数转换成人民币读法字符串,例如,将1006.333转换为壹千零陆元叁角叁分// D:\疯狂Java讲义\codes\04\4.6 NUM2RMB// 主方法,输入金额,并将整数部分和小...转载 2019-09-16 10:39:21 · 1155 阅读 · 0 评论 -
括号表示法创建二叉树
https://ask.csdn.net/questions/753651转载 2019-09-07 22:16:37 · 3249 阅读 · 0 评论 -
二叉树遍历(前序、中序、后序)-Java实现
https://www.cnblogs.com/zhi-leaf/p/10813048.html转载 2019-09-07 22:15:49 · 94 阅读 · 0 评论 -
【leetcode94】二叉树的中序遍历 Java题解
https://blog.csdn.net/weixin_43046082/article/details/89639342转载 2019-09-07 22:14:34 · 105 阅读 · 0 评论 -
0-1背包问题
01背包问题,是用来介绍动态规划算法最经典的例子,网上关于01背包问题的讲解也很多,我写这篇文章力争做到用最简单的方式,最少的公式把01背包问题讲解透彻。01背包的状态转换方程 f[i,j] = Max{ f[i-1,j-Wi]+Pi( j >= Wi ), f[i-1,j] }f[i,j]表示在前i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。Pi表示第i件物品的...原创 2019-08-21 11:34:59 · 268 阅读 · 0 评论 -
一文彻底搞懂01背包算法
https://blog.csdn.net/u014296502/article/details/80015722转载 2019-08-05 19:31:59 · 427 阅读 · 0 评论 -
Java二维数组中如何表示行的长度和列的长度
行长度:array.length列长度:array[i].length`public class Solution { public boolean Find(int target, int [][] array) { for(int i=0;i<array.len...原创 2018-12-06 10:17:12 · 6334 阅读 · 0 评论 -
java如何用异或符号实现两个变量值的交换
在网上看到如何利用异或来实现两个变量的交换,感觉很方便,但是理解起来优点难度,做个笔记,加深理解。首先先对异或有个了解:相同的异或之后则为0,不相同的则为1。a:1000 1010,b:1000 1101则a=a^b 这个式子的返回值是a与b相同与不相同的标志。上面的运算结果是: 0000 0111再看第二个式子:b = a^b 由于此时的a不是代表原来的a,此时是标志而已,这...原创 2018-11-27 10:59:35 · 463 阅读 · 2 评论 -
java 给出两个整数a和b , 求他们的和。不用用运算符+
分析:首先来理解一下十进制的加法8884 + 146 = 9030依据 不进位 + 进位 这一思想进行详述首先是不进位的结果是8920哪几位需要进位呢? 0011 也就是个位和十位需要进位,个位、十位进位之后的值为110,而这个结果是需要加到上面的不进位的值,即8920+110 = 8030 同样这是没有进位的,但是在这次相加的过程中也有进位的考量,哪几位呢?即100,百位的位置需要进位...原创 2018-11-27 10:55:16 · 2500 阅读 · 0 评论