自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stephen Wong的专栏

让明天把今天记住 不是因为孤独 因为我们追求的专注 不管它起起伏伏

  • 博客(300)
  • 收藏
  • 关注

原创 LeetCode 135. Candy (O(n)时间 O(n)和O(1)空间的两种实现)

贪心算法,从局部最优推广成全局最优。这里介绍O(n)时间 O(n)和O(1)空间的两种实现方法。

2015-02-17 00:14:46 2060

原创 manacher算法 (O(n)求最长回文子串)

我们可以用O(n^2)暴力求解最长回文子串。之所以是这个复杂度,是因为我们对每个字符比较其两边元素是否相等时,我们都是从它最旁边的一个开始迭代的。但如果我们能以该字符为中心,其附近的某一段子串已为回文,在此基础上比较更远的元素,那么就有可能降低这个复杂度了。

2014-06-06 00:16:05 1846

原创 背包问题

hihocoder 1038. 01 背包dp[i] 表示使用掉 i 张奖券(消耗掉 i 的空间)后,能获得的最大价值。代码:#include #include #include using namespace std;int main() { // Input int n, m; cin >> n >> m; vector needs, values;

2016-07-10 11:31:51 647

原创 [Java] 模拟题2

第8题可以用 int(Math.sqrt(x)) * int(Math.sqrt(x)) == x 可以判断整型 x 是个平方数。错误。我认为错误的原因是:这条语句是语法错误的。

2016-06-19 10:20:45 781

原创 [Java] 作业8(继承、多态)

Q37题目定义了两个 public class, 所以如果要完全模拟题目的情景,需要创建两个 .java 文件。因为每个 .java 文件里有且只能有一个 public clas. // Parent.javapublic class Parent { public float aFun(float a, float b) throws IOException { // ..

2016-06-15 19:36:11 1743

原创 [Java] 往年试卷

public class Test { public static void main(String[] args) { int sum = 0; for (int i = 1; ; ++ i, sum += i) { System.out.println("i = " + i + ", sum = " + sum); if (i > 10)

2016-06-14 23:48:27 975

原创 [Java] 实验13

70001 参考《Java语言程序设计--基础篇》:    - 8.1 引言    - 8.2 定义对象的类。简单描述了语法规则    - 8.3 举例:定义类和创建对象。以 Circle 为例。代码填空:import java.util.*;public class CircleTest { public static void main(String args[

2016-05-31 23:40:40 1685

原创 [Java] 实验12

60021 求字符串长度import java.util.Scanner;public class StringLengths { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Obtain the string, like "hello#123#" ,

2016-05-24 21:42:43 2244

原创 [Java] 作业6(字符串)

Q1《Java语言程序设计 基础篇》第8版:    - 9.2.3 字符串的比较Q8a, c: 可以用 + 来连接两个字符串;d: str.length 返回 str 的长度b: + 不可以用来连接 String 和 intQ24a: 参考Q8b: 不支持String间的 >= 操作符c: int i = s1.length(), lengt

2016-05-23 00:07:08 982

原创 [Java] 实验11

60005 排序可以参考书中冒泡排序或插入排序的相关内容。60012 加法口诀表import java.util.Scanner;public class Add { public static void main(String[] args) { Scanner in = new Scanner(System.in); int repeat = in.

2016-05-17 11:46:41 1321

原创 [Java] 实验10

50011这题考察如何定义method。method主要由    - 返回值 (return value)    - 方法名 (method name)    - 参数列表 (argument list)    - 方法体 (method body)组成。这题的max方法,大概是:int max(int a, int b, int c) { // ...}

2016-05-10 21:57:16 1010

原创 [Java] 作业5 (数组)

Q40// Program Ipublic class Test { public static void main(String[] args) { int[] list = { 1, 2, 3, 4, 5 }; reverse(list); for (int i = 0; i < list.length; i++) System.out.print

2016-05-04 23:34:49 1649

原创 [Java] 实验9

得知周一的同学少上了两次课的我,内心几乎是崩溃的。大家要尽量独立思考独立实现,仍有不明白的,可以参考下文中给出的提示。50006 输出 Fibonacci 序列private static int fib(int n) { if (condition) { return 1; } int first = 1; int second = 1;

2016-05-04 00:48:22 1025

原创 [Java] 作业4答疑

写在最前面:这些试题多是计算机学院的二三年级学生的Java课中的考试题目。大家不会做很正常,不要紧张,尽量去理解即可。期末考试的难度不会这么高,虽然我不清楚期末考试的题型。

2016-04-22 13:22:47 1483

原创 [Java] 实验8

1. default package问题可参考实验62. for, if, while等,后面包含多条语句时,需要用花括号括起来3. 为什么需要close scanner, 可参考实验6 (已简要更新原因)40037 计算不及格的人数在第二行输出结果错误(平均分输出73.75, 或者不及格人数输出3)的同学,可以参考实验六“求1+1/2+1/3+……+1/n”那题,第3点。

2016-04-19 23:59:17 1355

原创 [Java] 实验7参考代码

1. default package问题可参考[Java] 实验6参考代码2. for, if, while等,后面包含多条语句时,需要用花括号括起来3. 为什么需要close scanner, 可参考[Java] 实验6参考代码 (已简要更新原因)求最小公倍数和最大公约数最大公约数(gcd)的求法可以参考维基百科——辗转相除法;最小公倍数(lcm)的求法,在此举一个特

2016-04-13 00:50:11 1728

原创 [Java] 实验6参考代码

求1+1/2+1/3+……+1/n1. 整数 / 整数 = 整数2. 如何进行从1到n的循环:for (int i = 1; i <= n; ++ i) { // todo}求1-1/2+1/3-1/4+……如何在每次迭代(iteration, 非正式的可以理解成“一次循环”)中改变符号:boolean positive = true;for (int i =

2016-04-05 10:21:06 1827

原创 [Java] 实验5参考代码

实验4月3日晚截止,实验截止后将在此给出完整的参考代码。1. 如何使用下面的代码模板: 1.1 在eclipse中创建对应名称的类 1.2 将代码复制到类文件里 1.3 在//todo注释中输入你用于解题的代码。 1.4 例子:参考第一题“显示两级名字”,大家就可以这么做 1.4.1 在eclipse中创建类,名字叫做PassOrFail 1.4.2 将下面的代码复制到.java文件中,并删除//todo注释,开始在while循环里写代码

2016-03-29 18:57:43 1671

原创 微软笔试题

March 27th, 2016Hihocoder 1285. 智力竞赛Two dimensional dynamic programming. rights[i][j]    i: # of stages we have passed    j: j chances we have used     rights[i][j]: the minimal right an

2016-03-29 18:37:16 760

原创 [Java] 作业3答疑

Q11-- i --; // 这里语法错误,题目不对Q12 根据语法,case后面需要跟break, 才会跳出switch语句,否则将依次执行正确case后面的所有语句。所以此题的运行结果是:int i = 10, j = 18, k = 30;switch(j - i) { case 8: k ++; // k = 31 case 9: k += 2; // k =

2016-03-28 21:19:20 1049

原创 LeetCode 292. Nim Game

LeetCode 292. Nim GameSay there are s = 4n + i (i = 1, 2, 3) stones on the table.Initial stateConsider the case where n = 0, there are at most 3 stones on the table. You take the first

2016-03-26 10:22:35 456

原创 什么是代码缩进(code indent)

一个简单的代码缩进(code indent)的样例是:public class A { public static void main() { bool condition = true; if (condition) { System.out.println("The condition is true."); } else { System.out.println

2016-03-23 11:43:01 13517

原创 [Java] 实验4参考代码

实验3月27日晚截止,实验截止后将在此给出完整的参考代码。大小写转换在 [Java] 作业2答疑Q31中,我们谈到了int和char间的相互转换。大家可以参考Q31中给出的代码,编写一个java程序,在控制台先输出字符'a', 'A', 'b', 'B'对应的int数值,看看有什么规律。计算三门课程的平均成绩一定要认真读题,看清题意。一定要认真读题,看清

2016-03-22 22:59:41 3462

原创 [Java] 实验3参考代码

平方根double res = Math.sqrt(num);// Math.sqrt(num)用来求num的平方根// res是作为result的缩写// 将result定义成double而非int类型:int类型无法表示浮点数。求余int num = 4 % 5; // num为4除5的余数,亦即num=4

2016-03-15 21:20:45 1469

原创 [Java] 实验2参考代码

最后一题,要求先从控制台读取一个数字n, 执行n此循环;在每次循环中读取a, b的值,并输出a, b的和。代码:import java.util.Scanner;public class Sum { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = i

2016-03-15 21:14:53 676

原创 [Java] 作业2答疑

Q31. Suppose i is an int type variable. Which of the following statements display the character whose Unicode is stored in variable i?a. System.out.println(i);b. System.out.println((char)i);c. S

2016-03-14 19:59:44 1412

原创 [Java] 常用方法的解释

nextInt()

2016-03-14 19:47:11 524

原创 [Java] i++与++i的区别(后缀++与前缀++)

后缀++ (Postfix Increment)根据Oracle官方给出的文档Postfix Increment Operator ++,假如i=10, 那么i++的行为是:先将1与变量的值相加,将新值(11)存回变量表达式返回旧值(10).下述程序表达了这一过程:int i = 10;System.out.println(i ++); // 输出10前缀

2016-03-13 10:40:57 2552

原创 [Java] public class, main和args的解释

大家可以下载《Java编程思想》第四版,参考2.7小节“你的第一个Java程序”。里面介绍了public class, main的含义。文件名与类名我们如果需要创建一个独立运行的程序,那么文件中必须存在某个类与该文件同名(否则编译器会报错),而且那个类必须包含一个名为main()的方法。所以在HelloWorld.java文件中,我们必须存在如下类定义:// Hello

2016-03-12 11:49:56 6094

原创 [Java] 作业1答疑

Q27.设a=10; b=2*a++; 执行语句System.out.print("a="+a+++" b="+b);的输出结果是_____。为解决这题,我们要先给大家介绍表达式(expression)与求值(evaluation)两个概念:表达式我们可以将"一个变量"或"变量与操作符"组成的语句称为表达式,比如:“a“, ”a+b“, ”a++“这些都是表达式。求值我

2016-03-04 10:33:38 1281

原创 [Java] Eclipse安装

1. JRE和JDK1.1 JREJava程序需要在Java Runtime Environment (JRE)下才可以运行。Eclipse软件本身是用Java写的,所以要运行Eclipse,电脑需要安装JRE.1.2 JDK1.2.1 什么是JDKEclipse软件的作用有很多,可以用来编写Java, Scala, C/C++等程序。如果要用来开发Java程序,那么就

2016-03-02 13:50:03 751

原创 [Java] 实验1

学有余力的同学可以看看下述文献,有助于写出更好的程序。问题4. 显示以下表格以某种格式输出:Print with formatting格式详解:Decimal formatting    - 注意到,left-justified可以满足实验要求

2016-03-01 22:58:10 910

原创 LeetCode 220. Contains Duplicate III

参考了Eason Liu的博文,代码:class Solution {public: bool containsNearbyAlmostDuplicate(vector& nums, int k, int t) { multiset bst; for (size_t i = 0; i < nums.size(); ++ i)

2015-09-17 19:36:59 495

原创 LeetCode 219. Contains Duplicate II

实验室最近的项目可能要用到一些js, 所以开始一些练习。/** * @param {number[]} nums * @param {number} k * @return {boolean} */var containsNearbyDuplicate = function(nums, k) { var hash = {}; for (var i in nu

2015-09-08 12:12:34 462

原创 LeetCode 216. Combination Sum III

递归即可。代码:class Solution {public: vector> combinationSum3(int k, int n) { for (int i = 1; i0 && i<=n; ++ i) { vector cur(1, i); gao(i+1, k-1, n-i, cu

2015-09-08 12:11:02 403

原创 LeetCode 214. Shortest Palindrome

题意为,允许在字符串的头部添加字符,使其成为回文。最简单的方法是讲该字符串翻转为s2, s2 + s1即为回文,但题目要求的是最短的回文串。于是问题便转换为一个,求以原字符串首字符开头(s[0])的最长子串的长度(亦即使得s.substr(0, length)为回文的最大length值)这么一个子问题。       —— 可以想象,当求得这么一个length后,我们将s.subst

2015-08-27 17:09:36 815

原创 LeetCode 215. Kth Largest Element in an Array

快排代码:class Solution {public: int findKthLargest(vector& nums, int k) { int begin = 0, end = nums.size() - 1; while (begin < end) { int left = begin

2015-08-26 11:33:53 622

原创 LeetCode 213. House Robber II

和LeetCode 198. House Robber类似,应用动态规划,构造数组dp[nums.size()][2][2], 相比LeetCode 198. House Robber, 由于题目将整个房子变成了一个环形,我们在此就多增加了一维k, 用来专门标识是否取nums[0]. 对于dp[i][j][k], j=0时不取nums[i], j=1时取nums[i];k=0时不取nu

2015-08-12 16:15:24 606

原创 LeetCode 211. Add and Search Word - Data structure design

借用LeetCode 208. Implement Trie (Prefix Tree)中设计的字典树,特判查询字符为.时的情况即可。注意:成员变量的初始化应放在构造函数的initializing list而不是body中,使成员变量只被初始化一次,没有被再次赋值;使用shared_ptr代替裸指针来管理内存。代码:class TrieNode{public: T

2015-08-10 10:50:13 1064

原创 LeetCode 173. Binary Search Tree Iterator

中序遍历。用栈保存的节点,始终都为该层尚未被next()访问过的最小节点,初始化为: for ( ; root != nullptr; root = root->left) { stk.push(root); }在每次调用next移进迭代器时,意味着移出的该节点左子树为空(之前都已迭代过),所以把它的右子树的

2015-08-05 18:43:42 563

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除