算法
文章平均质量分 60
__HelloWorld__
这个作者很懒,什么都没留下…
展开
-
Java 8 中的List排序
按字母顺序排序字符串列表List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", "New Delhi");System.out.println(cities);//[Milan, london, S...翻译 2019-06-13 16:50:36 · 13662 阅读 · 0 评论 -
C#使用ICSharpCode.SharpZipLib对文件进行压缩
http://icsharpcode.github.io/SharpZipLib/原创 2014-06-14 10:28:49 · 1529 阅读 · 0 评论 -
百度2014校园招聘算法——给出一组数据A=[a_0, a_1, a-2, ... a_n](其中n可变),打印出该数值元素的所有组合。
百度2014校园招聘算法——给出一组数据A=[a_0, a_1, a-2, ... a_n](其中n可变),打印出该数值元素的所有组合。原创 2014-05-31 13:47:49 · 4067 阅读 · 0 评论 -
MFC VC++ Split函数的实现
void StringSplit(CString source, CStringArray& dest, char division) { if(source.IsEmpty()) { } else { int pos = source.Find(division); if(pos==-1) { dest.Add(source); } else原创 2014-05-31 10:02:26 · 7081 阅读 · 2 评论 -
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。http://zhedahht.blog.163.com/blog/static/254111742007499363479//** * */package interview;import ja原创 2011-10-23 16:52:16 · 6555 阅读 · 0 评论 -
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。学习别人的:http://zhedahht.blog.163.com/blog/static/2541117420114172812217//* * AllQ.java 2011-10-23 * Copyright 2010 - 2011 */pa原创 2011-10-23 16:39:55 · 7277 阅读 · 1 评论 -
对称子字符串的最大长度
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。public class Test46 { /** * @param args */ public static int f(String str) { int length = str.length(); int max = 1; int s1 = 0; int s2 = 1; int s3 =原创 2011-01-26 23:03:00 · 1121 阅读 · 0 评论 -
HeapSort
Java实现堆排序原创 2010-11-08 21:00:00 · 554 阅读 · 0 评论 -
二叉树中两个节点的最近的公共父节点
二叉树中两个节点的最近的公共父节点原创 2010-11-09 11:28:00 · 1260 阅读 · 0 评论 -
Java初始化
Java初始化原创 2010-11-09 10:08:00 · 601 阅读 · 0 评论 -
求A^B的最后三位
2011年百度校园招聘第一题 已知0import java.math.BigDecimal;import java.util.Arrays;/** * @author clydelou * */public class LastThree { /** * @param args */ public static void f(int a, int n) { int[] r = new int[3]; int x = 0, y = 0; r[0]原创 2010-10-25 19:13:00 · 1137 阅读 · 0 评论 -
在二元树中找出和为某一值的所有路径
输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。原创 2010-11-29 14:01:00 · 550 阅读 · 0 评论 -
用两个栈实现队列
用两个栈实现队列原创 2010-11-29 20:52:00 · 559 阅读 · 0 评论 -
设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。原创 2010-11-29 11:04:00 · 752 阅读 · 0 评论 -
C#多线程编程
引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。其中委托的BeginInvoke方法以及回调函数最为常用。而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。转载 2014-06-14 11:47:27 · 3956 阅读 · 0 评论 -
计算两个中文字符串相似度——编辑距离算法
1、Javapublic static void levenshtein(String str1, String str2) { // 计算两个字符串的长度。 int len1 = str1.length(); int len2 = str2.length(); // 建立上面说的数组,比字符长度大一个空间 int[][] dif = new int[len1 + 1原创 2014-09-12 21:05:36 · 13234 阅读 · 0 评论 -
最大子序列和
给定一个整数序列,a0, a1, a2,…, an(序列项可以为负数),求其中最大的子序列和,如果所有整数都是负数,那么最大子序列和为0;首先定义两个变量:max_so_far和max_ending_here然后从左到右开始遍历输入序列,其中:max_ending_here用以表示序列中截止到当前位置的最大子序列和,max_so_far则是通过冒泡排序的方式获取max_ending_here的最大原创 2017-12-14 20:05:39 · 404 阅读 · 0 评论 -
给出二叉树的中序和后序遍历,构建出二叉树
假设二叉树中序遍历为:int[] inOrder = { 4, 2, 5, 1, 6, 3, 7 };后序遍历为int[] postOrder = { 4, 5, 2, 6, 7, 3, 1 };那么,如何构建还原出这颗二叉树?类似问题还有:给出二叉树的先序和中序遍历如何还原出二叉树算法思想:后序遍历中的最后一个元素为二叉树的根节点,这里是数字1在中序遍历集合中查找数字1,...翻译 2018-12-11 14:06:56 · 2960 阅读 · 0 评论 -
给出二叉树的中序和先序遍历,构建出二叉树
假设二叉树的中序遍历为:D B E A F C先序遍历为:A B D E C F那么,如何构建还原出这颗二叉树?算法思想:先序遍历中,第一个节点为二叉树根节点,本例中,根节点为A,在中序遍历集合中检索字符A,字符A左边的字符为二叉树左子树,右边的字符为二叉树右子树。于是,我们得到如下结构:递归重复上述步骤,得到如下结果:算法实现buildTree:从先序中检索元素,...翻译 2018-12-11 16:42:23 · 837 阅读 · 0 评论 -
LeetCode-Problem 54:螺旋矩阵
问题描述给出一个 m x n 的矩阵(m 行, n 列),请按照顺时针螺旋顺序返回元素。例如,给出以下矩阵: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]应该返回 [...原创 2018-04-12 09:47:55 · 419 阅读 · 0 评论 -
LeetCode-Problem 43:大数相乘
算法问题给定两个以字符串表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积。算法实现以下是大神的算法,膜拜大神:首先,长度位m的数乘以长度为n的数的结果不超过m+n。接下来,我们来看下两数相乘的计算过程,从右向左,将数2中的每一位的数与数1相乘,最后将结果相加。下图演示的是两数相乘的整个过程,从下图中,我们可以得到,对于num[i] *num[j]...原创 2018-04-11 12:02:38 · 3129 阅读 · 2 评论 -
LeetCode-Problem 3:无重复字符的最长子串
给定一个字符串,找出不含有重复字符的 最长子串 的长度。算法:public static int lengthOfLongestSubstring(String s) { int b = 0; int max = 0; if (s.length() == 1) { return 1; } ...原创 2018-04-03 16:58:24 · 408 阅读 · 0 评论 -
LeetCode-Problem 26:删除排序数组中的重复项
问题给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。示例: 给定数组: nums = [1,1,2], 你的函数应该返回新长度 2, 并且原数组nums的前两个元素必须是1和2 不需要理会新的数组长度后面的元素算法实现神奇的代码...原创 2018-04-09 16:41:42 · 429 阅读 · 0 评论 -
LeetCode-Problem 24:交换链表中相邻结点
算法给定一个链表,对每两个相邻的结点作交换并返回头节点。例如: 给定 1->2->3->4,你应该返回 2->1->4->3。算法实现 public ListNode swapPairs(ListNode head) { if ((head == null) || (head.next == null)) {...原创 2018-04-09 15:32:09 · 514 阅读 · 0 评论 -
LeetCode-Problem 19:删除链表的倒数第N个节点
题目给定一个链表,删除链表的倒数第 n 个节点并返回头结点。例如: 给定一个链表: 1->2->3->4->5, 并且 n = 2. 当删除了倒数第二个节点后链表变成了 1->2->3->5.说明:给的 n 始终是有效的。尝试一次遍历实现。算法思想两个指针first,second,第一个指针首先步进n步,之后,...原创 2018-04-08 21:06:33 · 217 阅读 · 0 评论 -
LeetCode-Problem 6:字符串Z字形回转
实现一个将字符串进行指定行数的转换的函数: 将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:(下面这样的形状) 之后按逐行顺序依次排列:”PAHNAPLSIIGYIR”P A H NA P L S I I GY I R算法思想: 我们先构建一个数组,数组高度为numRows。根据题解,我们可以得到数组中每”两...原创 2018-04-08 14:24:11 · 376 阅读 · 0 评论 -
将数字金额转换为对应的中文大写金额
一个小问题,将指定的数字金额转换输出为对应的中文大写金额,比如:对于数字金额123,输出:壹佰贰拾叁圆 讨论之前,我们约定,数字最大不超过9999999999999.99,且最多只有两位小数。问题不难,主要需考虑以下几点:阿拉伯数字转换为对应的中文大写,比如,对于阿拉伯数字1,对应输出壹每个位置的数字后紧跟正确的单位,比如对于从右向左的第三位(不包含小数点),如果当...原创 2018-02-24 21:57:45 · 4227 阅读 · 2 评论 -
动态规划01背包问题
做个笔记记录一下: 给定n种物品和一个容量为 C的背包,物品i的重量是w,其价值为v 。 问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?动态规划的关键在于状态如何转移,首先,我们使用m[i][j]来表示前i个商品放入容量为j的背包中所能获取的最大价值,对于第i个物品,就存在两个选项,放或者不放。那么,那么m[i][j]的状态转移方程可以通过下面的方式得出...原创 2018-02-28 20:22:31 · 316 阅读 · 0 评论 -
Python convert a list to String
正常情况如果list由字串类型,一般可以用下面这种方法a_list = ["1", "2", "3"]print("".join(a_list))发散一下,如果list是数字型,那么上面这种方式就会报错: Traceback (most recent call last): File “D:/work/PyCharm/cn/com/icbc/basic/list_to_str.py”原创 2017-12-18 20:18:00 · 12197 阅读 · 0 评论 -
动态规划之最少硬币找零问题
假设有几种硬币,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。 private static final int MAX_VALUE = Integer.MAX_VALUE - 2; public static int coinChange(int[] coins, int change) { int[] seq = new int[change + 1];原创 2017-12-14 20:15:11 · 2693 阅读 · 0 评论 -
树的应用及Huffman编码
<br /> /** * */package advanced_java;import java.util.Collections;import java.util.LinkedList;import java.util.List;import java.util.Random;/** * @author clydelou * */class IntTreeNode { int value; IntTreeNode left; IntTreeN原创 2010-09-06 14:35:00 · 784 阅读 · 1 评论 -
算法导论—快速排序
<br />/** * */package java_algorithm;import java_container.ArrayMerge;/** * @author clydelou * */public class QS { /** * @param args */ public static int p(int[] a, int p, int r) { int x = a[r]; int i = p - 1; int tem原创 2010-08-31 20:57:00 · 668 阅读 · 0 评论 -
最长公共子序列
<br />/** * */package advanced_java;/** * @author clydelou * */public class LCS { /** * @param args */ public static char[][] lcs_length(String s, String t) { int m = s.length(); int n = t.length(); int[][] c = new int[原创 2010-09-09 13:54:00 · 481 阅读 · 0 评论 -
长字符串数字相乘
长字符串数字相乘原创 2010-07-22 14:33:00 · 3131 阅读 · 0 评论 -
长字符串数字相减
长字符串数字相减原创 2010-07-22 09:41:00 · 4490 阅读 · 0 评论 -
长字符串数字相加
长字符串数字相加原创 2010-07-21 16:41:00 · 3149 阅读 · 0 评论 -
算法:带小数的十进制转换为八进制
算法:带小数的十进制转换为八进制原创 2010-07-19 20:17:00 · 7003 阅读 · 0 评论 -
算法:递归列出一个目录下面的所有文件
递归列出一个目录下面的所有文件原创 2010-07-16 19:07:00 · 958 阅读 · 0 评论 -
编写一函数,将一个数字(Integer)转换成中文返回。
编写一函数,将一个数字(Integer)转换成中文返回。原创 2010-07-15 19:35:00 · 1663 阅读 · 0 评论 -
一个字符串参数(s)由字母(a-z,A-Z)组成, 且最大字符位数为40,要求写一个函数, 返回该参数中连续相同字母的最大个数及该字母,如果最大位数有多个,则返回第一个。例:字符串“aaaddxxxxddddxxxx”,返回值为:“x,4”。
一个字符串参数(s)由字母(a-z,A-Z)组成, 且最大字符位数为40,要求写一个函数, 返回该参数中连续相同字母的最大个数及该字母,如果最大位数有多个,则返回第一个。例:字符串“aaaddxxxxddddxxxx”,返回值为:“x,4”。原创 2010-07-15 16:54:00 · 5332 阅读 · 2 评论