OJ
文章平均质量分 56
阿布哥
这个作者很懒,什么都没留下…
展开
-
0 - 9的100——1000次方
#include #define MAX 1000using namespace std;//小整数的整数次方/*int PowerWithUnsignedExponent(int base, int exponent){ if(exponent == 0) return 1; if(exponent == 1) return bas原创 2013-08-20 11:23:35 · 812 阅读 · 0 评论 -
大整数乘法
一、高精度计算需要注意的几个问题:1.用字符串的读入方式,再按字符分别转换成数字2.不能用数值型的读入方式二、计算过程中考虑进位和借位问题(先不急于处理,在计算结束时处理)1.数组第i元素>=10(或2.从上位增或减1,本位减或加10三、输出时注意跳过高位多余的0四、数组需要稍微大一些,避免运算时溢出问题描述求两个不超过200位的非负整数的积。输入数据原创 2013-08-18 16:23:05 · 597 阅读 · 0 评论 -
大整数减法
#include #include using namespace std;const int MAXLEN = 200;//大整数减法int Substract(int MaxLen, int *a1, int *a2){ int nHighestPos = 0; for(int i = 0; i < MaxLen; ++i) {原创 2013-08-18 11:10:50 · 647 阅读 · 0 评论 -
第六届华为创新杯编程大赛-----电话号码本的设计
package contest;import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { //用一个Map集合存储电话本中的姓名和电话号码 HashMap map = new LinkedHashMap()原创 2014-05-05 20:28:12 · 1056 阅读 · 0 评论 -
POJ1035 Spell checker
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;imp原创 2014-05-07 17:46:38 · 802 阅读 · 0 评论 -
LeetCode005:SingleNumber
package com.abuge;import java.util.Arrays;/** * 需求: * 给定一个整型数组,只有一个元素出现了一次,其它每个元素出现两次,找出这个元素,要求时间复杂度为O(n),不用辅助内存 * @author AbuGe * */public class Solution { public int singleNumber(int[] A原创 2014-08-04 15:28:34 · 474 阅读 · 0 评论 -
LeetCode_001:Reverse Words in a String
package com.abuge;/** * 需求: * 输入一个字符串,将其反转。 * 例: * s = "the sky is blue" * return "blue is sky the" * 方法&步骤: * 1、 将字符串首尾空格去除 * 2、利用正则表达式,将字符串转换成字符串数组 * 3、反转字符串数组 * @author AbuGe * */publ原创 2014-07-10 20:44:41 · 501 阅读 · 0 评论 -
LeetCode_002:Evaluate Reverse Polish Notation
package com.abuge;import java.util.Stack;/** * 需求: * 给定一组逆波兰表达式,求其表达式的值 * 思路&步骤: * 1、利用出栈和入栈实现表达式 * 2、对运算符进行判断,将字符串转换成int型,进行运算 * 3、考虑极限情况(只有一个字符串)以及减法和除法的顺序 * @author AbuGe * */public cl原创 2014-07-11 23:44:59 · 453 阅读 · 0 评论 -
LeetCode006:WordSerarch
package com.abuge;/** * Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those h原创 2014-08-04 17:14:46 · 567 阅读 · 0 评论 -
华为机试题——字符串处理
package com.abuge;import java.util.Comparator;import java.util.TreeSet;import org.junit.Test;/** * 2 字符串处理转换 问题描述: 在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等; 另外单个字母不算单词原创 2014-07-31 15:04:02 · 693 阅读 · 0 评论 -
华为机试题——正数减法
package com.abuge;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal;import org.junit.Test;/** * 3 正数减法 问题描述: 两个任意长度的原创 2014-08-01 13:32:42 · 622 阅读 · 0 评论 -
华为机试题——字符串循环转换
package com.abuge;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.util.HashMap;import org.juni原创 2014-07-31 15:02:20 · 739 阅读 · 1 评论 -
LeetCode007:WordLadder
参考:http://www.cnblogs.com/springfor/p/3893499.html题目:Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:O原创 2014-08-07 16:15:03 · 542 阅读 · 0 评论 -
华为机试题(字符串处理集锦)
package com.abuge;import java.util.Iterator;import java.util.LinkedHashSet;import org.junit.Test;/** * 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“原创 2014-08-21 15:23:07 · 1165 阅读 · 0 评论 -
大整数加法
问题描述:求两个不超过200位的非负整数的和。输入数据有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。输入样例2222222222222222222233333333333333333333输出样例55555555555555555555原创 2013-08-17 14:03:14 · 579 阅读 · 0 评论 -
POJ1661Help Jimmy(动态规划)
Description"Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落转载 2013-08-28 18:29:38 · 655 阅读 · 0 评论 -
POJ1661——Help Jimmy(关于动态规划)
总结:1.用动态规划解题,关键是要找出"状态"和状态间进行转移的方法(即状态转移过程)2.一般在动态规划的时候所用到的一些数组,也就是用来存储每个状态的最优值。搜索的实现:方式1:递归——剪枝1.整个搜索过程中,最终状态始终不变2.不要考虑明显不能达到最终状态的路径方式2:动态规划目的:1.在搜索过程中,把计算的结果保留下来2.在后面的搜索过程中,努力使用前原创 2013-08-27 16:31:57 · 580 阅读 · 0 评论 -
循环数的确定
#include #include #define MAX 60using namespace std;//两个数相加int Add(int nMaxLen, int *a1, int *a2){ int nHighestPos = 0; for(int i = 0; i <= nMaxLen - 1; ++i) { a1[i原创 2013-08-20 15:26:08 · 619 阅读 · 0 评论 -
大整数除法
基本思想:反复做减法,看看从被除数里最多能减去多少个除 数,商就是多少。一个一个减显然太慢,如何减得更快一些呢?以 7546除以23为例来看一下:开始商为0。先减去23的100倍,就是2300,发现够减3次,余下646。于是商的值就增加300。然后用646减去230,发现够减2 次,余下186,于是商的值增加20。最后用186减去23,够减8次,因此最终商就是328。所以本题的核心是原创 2013-08-19 19:41:01 · 963 阅读 · 0 评论 -
八皇后问题
#include #include #include using namespace std;int const QueenNum = 8;int Queen[QueenNum];//记录当前正在尝试的摆法int nResult[92][QueenNum];//存放找到的摆法int nFoundNum = 0;//记录当前已经找到的摆法数//摆放第n行及以后的皇后(原创 2013-08-21 22:00:08 · 550 阅读 · 0 评论 -
POJ1017 __Packets——放木块的箱子数
/*已知:有6*6的大箱子和1*1,2*2,3*3,4*4,5*5,6*6的木块,箱子高度和木块高度一样问:给定各种木块的数目,求最少需要多少个大箱子来装*///阶梯思想:先放大的,再放小的#include using namespace std;int main(){ int b6, b5, b4, b3, b2, b1; int c1;//当原创 2013-08-12 10:58:32 · 879 阅读 · 0 评论 -
字典序最小问题Best Cow Line
#include #include using namespace std;int main(){ int N = 6; //cin >> N; //char s[] = "ACDBCB"; //char s[6] = {'A', 'C', 'D', 'B', 'C', 'B'}; //string s = "ACDBCB";原创 2013-08-12 15:51:17 · 561 阅读 · 0 评论 -
POJ3069标记点
#include #include using namespace std;int N;int R;void Solve(){/* N = 6; R = 10; int X[6] = {1, 7, 15, 20, 30, 50};*/ cin >> N; cin >> R; int X[N]; f原创 2013-08-12 20:47:52 · 583 阅读 · 0 评论 -
POJ1006生理周期
问题分析:令所求的时间为X天,则具有如下性质:1)D 2) (X - p) % 23 = 03) (X - e) % 28 = 04) (X - i) % 33 = 0算法思想:从d + 1开始逐一枚举寻找满足条件2的数字a,从a开始每步加23寻找满足条件3的数字b(这样的b自然也满足条件2),然后再从b开始每步加23 * 28寻找满足条件4的数字X(这样的X同时满足条件原创 2013-08-13 18:54:42 · 550 阅读 · 0 评论 -
POJ2080日历问题
基本思路:1.确定星期几(先需确定2000.1.1是星期几)2.确定年:闰年366天,否则365天3.确定月:每个月长短不同4.确定日#include using namespace std;//判断是闰年还是平年int type(int m){ if(m % 4 != 0 ||(m % 100 == 0 && m % 400 != 0))原创 2013-08-14 14:53:22 · 675 阅读 · 0 评论 -
POJ1331确定进制
#include #include #include using namespace std;//将输入的b进制数转换为十进制数表示int b2ten(int p, int b){ //利用字符串来存储各个位 char temp[100]; int ret = 0; sprintf(temp, "%d", p); //tem原创 2013-08-14 15:06:45 · 1252 阅读 · 0 评论 -
关于输出前面补零的总结
#include #include using namespace std;int main(){ for(int i = 1; i { printf("%03d",i);//必须是%03d,而不是%3d,这样输出时每个i有3个整数位,不足三位的 //0填充在前面。其实输出时右原创 2013-08-14 15:23:07 · 1274 阅读 · 0 评论 -
动态规划——POJ1163数字三角形问题
#include using namespace std;const int MaxNum = 100;int Num[MaxNum + 10][MaxNum + 10];int MaxSum[MaxNum + 10][MaxNum + 10];int N;int main(){ int i; int j; cin >> N; f原创 2013-08-26 09:20:38 · 565 阅读 · 0 评论 -
求最长的上升子序列
题目:一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N原创 2013-08-26 22:17:39 · 623 阅读 · 0 评论 -
LeetCode008:Valid Number(正则表达式的运用)
package com.abuge;import org.junit.Test;public class Solution { public boolean isNumber(String s) { String str = s.trim(); if(str.isEmpty()) { return false; } //正则表达式的运用: /*第一原创 2014-08-12 21:48:47 · 973 阅读 · 0 评论