ACM
蜜蜂就是我自己
仰望星空又踏实低调!
https://github.com/mifeng09
展开
-
acm学习-工具篇
论坛1、Acm之家http://www.acmerblog.com/category/problemset2、南阳理工学院Acm俱乐部http://acm.nyist.net/JudgeOnline/problemset.php3、如何有效自己训练ACMhttps://www.zhihu.com/question/19841046?utm_campaign=rss&utm_原创 2017-02-23 22:39:42 · 620 阅读 · 0 评论 -
字符串匹配
字符串匹配算法:原创 2017-04-27 13:38:47 · 359 阅读 · 0 评论 -
动态规划学习笔记
矩阵的最小路径和设计一个动态规划算法,通常可以按照以下几个步骤进行:找出最优解的性质,并刻画其结构递归定义最优解的值用自底向上的方式计算最优解的值什么时候用动态规划:最优子结构: 一个问题的最优解中包含了其子问题的最优解重叠问题: 用来解原问题的递归算法可反复地解同样的子问题,而不是总是产生新的子问题总结: 关键是定义状态和状态转移方程设最优值为dp考察dp与那些变量有关,变量设原创 2017-07-11 01:00:27 · 380 阅读 · 0 评论 -
java先序递归创建二叉树
注: 需要掌握java中引用类型(即对象)的作为方法的参数是按值传递还是按引用传递整个代码是在同一个文件中 二叉数节点定义:class Node { public int element; public Node left; public Node right;}二叉树定义:class BiTree { Node root; public BiTree(原创 2017-04-23 17:47:58 · 6440 阅读 · 1 评论 -
ACM学习知识点记录
在做ACM题目前需要认识到每个OJ平台的差异,首先应该查看该平台的说明,了解平台的代码约定规范原创 2017-08-01 01:12:16 · 519 阅读 · 0 评论 -
hdu-1004
import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Problem1004 { public static void main(String[] args){ Scanner input = new Scanner(System.in); whi原创 2017-08-02 04:59:45 · 335 阅读 · 0 评论 -
LIS-最长递增子序列的长度-java
最长递增子序列的长度-LIS序列原创 2017-08-02 19:16:20 · 542 阅读 · 0 评论 -
算法-数组拆分为奇偶两部分
仅用O(1)的空间,将整数数组按奇偶数分成2部分,数组左边是奇数、右边是偶数。(要求:给出完整代码,尽量高效,简洁) 思路: 1. 从左往右找偶数,遇到奇数就继续往右(即遇到奇数执行操作:low++),找到偶数就停止,结果是找到第一个偶数 2. 从右往左找奇数,遇到偶数就继续往左(即遇到偶数执行操作: high–),直到找到第一个奇数public class Main { public s原创 2017-08-03 01:31:18 · 6535 阅读 · 0 评论 -
HDU 1003-最大连续子序列的和-java
最大连续子序列的和原创 2017-08-02 03:07:31 · 359 阅读 · 0 评论 -
直接插入排序算法实现
用Java实现直接插入排序思想:假设你左手上有扑克牌,且从左往右是有序的(即已经按照牌的大小排好顺序)现在抓到一张牌,肯定是找个合适的位置插入到牌堆中,在插入时候,遵循原则:从右边的牌开始依次比较要插入的那张牌的大小,若插入的牌小,手中的牌需要向右移动,重复比较插入手中牌堆中牌的大小,直到找到一张比插入的牌要大的牌,故代码需要体现两点:A、比较B、牌堆中牌的移动,且是向右移动pac原创 2017-03-14 18:30:34 · 594 阅读 · 0 评论 -
阿里实习编程题1
阿里的消息中间件,负责淘宝天猫支付宝等各个系统的消息中转,削峰填谷及架构的解耦。在每年的双11中承载了数万亿的消息。消息中间件中有Pub/Sub两个角色,Pub方发送消息到消息中间件,消息中间件再根据订阅关系投递给订阅方。例如用户成功购买了一个物品,交易平台(Pub)会发送一条交易完成(trade-done)的消息,购物车平台(Sub)订阅到这个消息后,会将用户的购物车物品删除掉。这里涉及一个问题,原创 2017-04-26 21:53:55 · 597 阅读 · 1 评论 -
阿里实习生编程题2
一个对于一个单行的逆波兰表达式,由如下元素构成: 数字:十进制数字字符构成的正整数,比如 223 运算符:支持三种运算符^+和*,分别代表自增,加法和乘法 分隔符:一个或者多个空格 例如下面的字符串就是个逆波兰表达式 2 3 4 * ^ 5 + 逆波兰表达式在一个基于栈的虚拟机中求解,虚拟机的栈能保存16个整数,虚拟机从左向右扫描表达式,遇到整数就压栈,遇到表达式则从栈顶弹出若干个整数原创 2017-04-26 21:51:00 · 634 阅读 · 0 评论 -
建立二叉树分析1
编程题 链接:http://blog.csdn.net/jjf09/article/details/70339364 分析 1. 用层析遍历来做 2. 若二叉树先序遍历为 4 5 7 8 6,要求根据这个遍历结果来确定该二叉树的结构, 答:其实这是没法确定该二叉树结构的,如下所示两二叉树,先序遍历结果都为 4 5 6 7 8 6 4原创 2017-04-23 21:12:53 · 417 阅读 · 0 评论 -
leetcode-Power of Two
问题:判断一个数是不是2的n次方,如2,4,8,16...等这些数都是可表示为2的乘方形式代码如下所示:import org.junit.Test;public class Solution { @Test public void test(){ int n = 4; if(isPowerofTwo(n)) System.out.println("true")原创 2017-03-18 04:29:06 · 329 阅读 · 0 评论 -
leetcode-Length of the longest substring without repeating characters
问题描述:得到一个字符串的最长字符串,且该最初字符串中的包含的字符都不相同思想以后再补充吧代码如下:package com.mifeng.acm.test;import java.util.Arrays;import org.junit.Test;public class SolutionDemo { @Test public void test(){ //in原创 2017-03-18 04:22:44 · 746 阅读 · 0 评论 -
五大算法思想的比较
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时转载 2017-03-06 23:35:39 · 1043 阅读 · 0 评论 -
冒泡排序算法实现
下面主要介绍冒泡排序、直接插入排序、选择排序1)冒泡排序思想:假设有数组A[a1,a2,a3,a4...an] ,从左往右遍历数组,若左边的比右边的数大,则两数交换,一次遍历结束后,数组中最大的数出现在最右边,接着又从左往右遍历数组,左边的比右边的数大,则两数交换,第二次遍历结束后,次最大的数排在右边第二个位置,重复该过程,直至进行了n-1次遍历数组后,该数组才彻底排序完毕packag原创 2017-03-14 18:09:06 · 455 阅读 · 0 评论 -
选择排序算法实现
思想:最小值不断交换到数组左边。定义一个数Min,该数表示最小值,将数组第一个数作为数组中的最小值Min,从第二个数开始从左往右遍历数组,在遍历数组的同时,需要比较数组第一个数与遍历到的数的大小,如果遍历到的数比第一个数小,则将遍历到的数赋值给Min,新的Min继续与剩下的遍历到的数进行大小比较,直到结束,第一次遍历结束后可以得到数组中最小的数Min,将该Min与数组第一个数进行交换;接下原创 2017-03-14 19:35:42 · 498 阅读 · 0 评论 -
求字符串的所有子串
求字符串的所有子串,子串是保持原来的字符串的顺序的,如下面问题: 给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。 思路: 1. 用递归法 尝试用递归法,但结果没分析出,不知道思路 2. 非递归方法 输出数据如上述 a,b,c,d,ab,bc,cd,abc,bcd,abc原创 2017-04-30 05:28:32 · 7804 阅读 · 0 评论 -
判断字符串是否是回文
特点: 字符串除首尾两个字符后的这个字符串是回文原创 2017-04-30 05:37:44 · 766 阅读 · 0 评论 -
求一个字符串的所有回文字串
求一个字符串的所有回文字串原创 2017-04-30 05:41:05 · 1320 阅读 · 0 评论 -
面试编程题1
阿里模拟测试编程题: 对于一个由一位十进制整数构成的二叉树,如果深度不超过4,可以用一个三位十进制整数构成的数组表示,具体规则如下: 1, 百位数表示树的层次L,1<=L<=4;十位数表示在该层次中的位置P,1<=P<=8;个位数表示数值V。 2, 数组里,L一定是单增的,也就是说后一个数的L大于等于前一个数的L。 3, 对于同一个L,P也是单增的,就是说在L不变的情况下,后一个数的P大于或原创 2017-04-21 20:52:18 · 483 阅读 · 0 评论 -
验证代码
在面试、或是平时在写代码的时候,对于写出的代码没有把握是正确的?怎样来保障? 经过网上查询资料,得来的: 1. 自己想测试用例,用测试用例的输入输出来验证代码的正确? 2. 对于循环结构,我们可以用 loop invariance(即循环不变式)来验证,loop invariance有点类似于数学归纳法, 在确定了 loop invarice后:原创 2017-12-05 01:15:09 · 706 阅读 · 0 评论