由买买提看人间百态

topics

全部话题 - 话题: println
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)
gw
发帖数: 2175
1
package unmar;
import java.io.File;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.namespace.QName;
import javax.xml.transform.stream.StreamSource;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(MyWrapperForList.class,
Expense.class);
//UNMARSHALLING
Unmarshaller unm... 阅读全帖
K*********n
发帖数: 2852
2
Scala纯新手,写了点测试代码:
###### build.sbt #########
name := "Train NB"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.2.0",
"commons-io" % "commons-io" % "2.4",
"com.google.code.gson" % "gson" % "2.2.4",
"org.la4j" % "la4j" % "0.4.9"
)
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
####### scala code ##########
package app.mycompany
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apa... 阅读全帖
w***g
发帖数: 5958
3
来自主题: Programming版 - 从心底讨厌scala
我随便给你几段程序。不是多敲一两个字母的问题,而是多敲几倍字母的问题。
敲的同时脑子还需要处理各种和程序逻辑无关的exception handling问题。
(我这个比较的前提是程序用来做数据处理,尝试新算法,最终90%的代码都会
被扔掉。)
java:
try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException x) {
System.err.format("IOException: %s%n", x);
}
scala:
for(line <- Source.fromPath("myfile.txt").getLines())
println(line)
python:
for line in open("myfile.txt... 阅读全帖
l**********n
发帖数: 8443
4
来自主题: Programming版 - 继续吐槽scala
case class是scala的algebraic data types
example:
sealed trait Order {
def execute: Unit // ignore that Unit return type is not a great idea...
}
case class MarketOrder extends Order {
def execute {
println "executing market order"
}
}
case class LimitOrder extends Order {
def execute {
println "executing limit order"
}
}
An order is either a market or limit order not both. This is what is called
as a Sum type and MarketOrder and LimitOrder are value constructors for the
type Orde... 阅读全帖
d****n
发帖数: 1637
5
来自主题: Programming版 - 如何快速处理大量网上xml文件?
http://play.golang.org/p/vS409gRveG
开20个worker,多用几个 电脑,当你 存xml时候注意一下duplicates就搞定了。指定
比你的 python快
// In this example we'll look at how to implement
// a _worker pool_ using goroutines and channels.
package main
import "fmt"
import "net/http"
import "log"
import "io/ioutil"
// Here's the worker, of which we'll run several
// concurrent instances. These workers will receive
// work on the `jobs` channel and send the corresponding
// results on `results`. We'll sleep a second per job to
// simulate... 阅读全帖
d******e
发帖数: 2265
6
来自主题: Programming版 - 如何快速处理大量网上xml文件?
val f: Future[List[String]] = Future {
session.getRecentPosts
}
f onFailure {
case t => println("An error has occured: " + t.getMessage)
}
f onSuccess {
case posts => for (post <- posts) println(post)
}
比如404.你在onFailure里面处理好了。你不需要在主线程里面f.get活着await来处理。
z****e
发帖数: 54598
7
就是vertx-sync
就是利用fiber构建一个轻量级的thread
which并不一一对应kernal thread
简单说,如果你block了fiber
并不会导致os的thread被blocked
通过这种方式,你就可以丢掉promise, rxjava以及更为糟糕的callback了
直接用你最熟悉的sync的方式编写异步代码
唯一的改变就是你把Future改成Message
然后随便用.get, .body,会block fiber但是没有关系,不会阻塞thread
类似goroutine,vert.x依赖的这个类似go的项目名字叫做quasar
http://docs.paralleluniverse.co/quasar/
然后vert.x就把quasar的api用它自己的api包装起来
就类似vert.x把akka的actor给抄了过来,然后用相对简单的api包装起来一样
3.1发布之前,对于这个需求的呼声相当高,这是链接
http://github.com/vert-x3/vertx-sync/blob/master/src/main/ascii
效率对比,quas... 阅读全帖
z****e
发帖数: 54598
8
来自主题: Programming版 - java 8就是一坨屎
here is a simple example of rx.map
Observable.from("item1")
.map((str1)->{
System.out.println("insde the map " + str1);
return str1;
})
.subscribe(System.out::println);
u can see str1 -> {blablabla}
w*********n
发帖数: 439
9
来自主题: Programming版 - JAVA 考试题请教
class Super {
static String ID = "QBANK";
}
class Sub extends Super{
static {System.out.println("In sub"); }
}
public class TestClass {
public static void main(String[] args) {
System.out.println(Sub.ID);
}
}
请问Sub里面的静态block为什么不运行?
d******e
发帖数: 2265
10
来自主题: Programming版 - 感觉python的前途堪忧 (转载)
转帖:
克里斯可以说是天才少年和好学生的代名词,他在2000年本科毕业之后,继续攻读计算
机硕士和博士。但克里斯并不是宅男,学习之余他手捧「龙书」游历世界,成为德智体
美劳全面发展的好学生。之后就是一篇又一篇的发表论文,硕士毕业论文即提出了一套
完整的运行时编译思想,奠定了 LLVM 的发展基础,读博期间 LLVM 编译框架在他的领
导下得到了长足的发展,已经可以基于 GCC 前端编译器的语义分析结果进行编译优化
和代码生成,所以克里斯在2005年毕业的时候已经是业界知名的编译器专家了。
注:很多计算机专业的大学生经常问我在大学里学点什么好,看看克里斯就行了。以目
前的科技信息开放程度,如果你在自己感兴趣的领域里用心耕耘,再加上那么一点点天
分,毕业时成为某一个专有领域的专家应该不是问题。那时就不是你满世界去找工作了
,而是工作满世界来找你!
克里斯毕业的时候正是苹果为了编译器焦头烂额的时候,因为苹果之前的软件产品都依
赖于整条 GCC 编译链,而开源界的这帮大爷并不买苹果的帐,他们不愿意专门为了苹
果公司的要求优化和改进 GCC 代码,所以苹果一怒之下将编译器后端直接替换为 LLVM... 阅读全帖
W********u
发帖数: 58
11
这只能说明你看文档太不仔细了,这说得很清楚啊,还有例子呢:
http://blog.golang.org/defer-panic-and-recover
1. A deferred function's arguments are evaluated when the defer statement is
evaluated.
In this example, the expression "i" is evaluated when the Println call is
deferred. The deferred call will print "0" after the function returns.
func a() {
i := 0
defer fmt.Println(i)
i++
return
}
h******o
发帖数: 334
12
A .txt file. Use the below java code to read the file and use a 2-D array (
one dimension for the users and other dimension for the products) to store
the order#. Also, use a dictionary to map each users to its corresponding
array row. How to replace the missing value with 0 in the 2D array?
Users, Products, order#:
name1 p1 5
name1 p2
name1 p3 2
name2 p1 3
name2 p2 1
name2 p3
name3 p1 5
name3 p2
name3 p3 2
name4 p1 3
name4... 阅读全帖
w*********n
发帖数: 439
13
来自主题: Programming版 - 笨笨的问一个JAVA小问题
我初始化一个ArraList ,然后向这个ArrayList里面加入2个Integer,当我试
图改变其中一个Integer的值的时候,
居然改不掉。请问怎么回事?
ArrayList list = new ArrayList<>();
Integer age1 = 20;
Integer age2 = 20;
list.add(age1);
list.add(age2);
//change age2 int value to 30
age2 = 30;
System.out.println(list.get(0));
System.out.println(list.get(1));
————————————————————————————
Output:
20
20
请问为什么改不掉age2这个Integer的值。
b***i
发帖数: 3043
14
前几天几个高手的提示,脑洞打开,才发现,原来Runnable的变量是共享的!另感谢提
醒,把错误的语法改了
class A {
int a;
A(int x){a=x;}
public void show(){System.out.println(a);}
}
...main(...
A a=new A(3);
A b=new A(4);
a.show();
b.show();
}
这个显示3, 4
但是
class A implements Runnable{
int a;
A(int x){a=x;}
public void run(){
.. wait for one second;
System.out.println(a);
}
}
.. main(..
A a=new A(3);
A b=new A(4);
Thread t1=new Thread(a);
Thread t2=new Thread(b)'
t1.start();t2.start();
}
这个显示两个3
所以才有Threa... 阅读全帖
b***i
发帖数: 3043
15
来自主题: Programming版 - ThreadLocal可以这样用吗?
public static ThreadLocal instance;
public static void setHDC(Integer i){
instance=new ThreadLocal();
instance.set(i);
System.out.println("Program "+"in "+ GThreadLib.get()+" setting ="+i
);
}
public static Integer getHDC(){
Integer h=instance.get();
System.out.println("Program "+" in "+GThreadLib.get()+" getting ="+h
);
}
还是必须 public static final ThreadLocal instance=new
ThreadLocal();
我好像在前一种实... 阅读全帖
k****i
发帖数: 101
16
来自主题: Programming版 - Golang的promise lib哪个好?
package main
import (
"fmt"
"time"
)
type T interface{}
type P chan T
type F func(t T) T
func pf(f F, t T) P {
p := make(P)
go func() {
p <- f(t)
}()
return p
}
func main() {
f := func(t T) T {
time.Sleep(time.Second)
return t
}
pa, pb := pf(f, 1), pf(f, 2)
fmt.Println((<-pa).(int)+(<-pb).(int), time.Now())
a, b := <-pf(f, 3), <-pf(f, 4)
fmt.Println(a.(int)+b.(int), time.Now())
}
l**********r
发帖数: 79
17
这个跟return type 无关, 你这是典型的c思维写java代码。 但是java 有一个神器,
就是包装。
package microbenchmark;
import java.util.InputMismatchException;
import java.util.Scanner;
public class SC {
Objects obje;
public SC(){
obje=new Objects();
}
private class Objects{
float fn=0;
float sn=0;
public Objects(){
fn=0;
sn=0;
}
public void setFN(float value){
fn=value;
}
public void setSN(float value){
sn... 阅读全帖
e*******n
发帖数: 872
18
来自主题: DataSciences版 - 40道经典DS/ML面试题解答,求指导
原题见
http://www.mitbbs.com/article_t/DataSciences/10029.html
专门开一个贴,尝试逐题解答。本人菜鸟,求大牛指导
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1. Given a coin you don’t know it’s fair or unfair. Throw it 6 times and
get 1 tail and 5 head. Determine whether it’s fair or not. What’s your
confidence value?
我的答案是:
H0: the coin is fair
Ha: the coin is unfair
X is the number of heads
Rejection region: |X - 3| > 2, i.e., X = 0,1,5,or 6
significance level alpha:
alpha = P(reject H0 | H0 i... 阅读全帖
z****e
发帖数: 54598
19
来自主题: History版 - 中文为什么没有字母化
il est un chien
我们假设这里其他三个它是狗这三个单词都是一样的
那么如果仅仅在量词上表示性别的话
un->une很容易操作,只需要在后面加一个e就好了
那么写在法律条文中,都会写成公狗,因为如果形势需要
加一个e就变成母狗了,这就是典型的文字游戏
对于描述精确的东西就显得很无力,就不reliable
如果要reliable,就显得很繁琐,它是一条公狗
需要凑进去很多字,这才是繁琐和麻烦
中文比较精确的是量词,一条狗,一只鱼,一座山,一位先生,一位女士
这个量词的复杂程度远远超过其他任何一个语言,所以你说一座狗
这个就是严重错误,基本上不允许出现,中文在量词方面做得繁琐
也是难点之一,至于动词名词的词性变位这些广泛出现在字母语言中
而且主要是后缀的变化,比如chien->chienne,绝大多数公母转换都是后面加点字母
没啥繁琐的,你写字母有啥麻烦的,比起公狗->母狗,这不是要强很多?
java里面就严格要求写class{},这个就很合理,别人一定能看懂
python连括号都省略,到最后也吃不消了,开始往上加println("")
这就说明省略的东西,人比较难以接受,甚至... 阅读全帖
s*****r
发帖数: 43070
20
来自主题: Military版 - 技术革命对理工WSN有啥好处?
会这个是高级码农,一般只会println
u*****a
发帖数: 9489
21
机器人你好
if (mitbbsId == umutata)
System.out.println("佬丘,别闹了,赶紧出门捡瓶子去,晚了瓶子都被白垃圾捡
光了!");
这就是你的源程序吧?
B*Q
发帖数: 25729
22
来自主题: Military版 - 最合理的税收公式 (转载)
【 以下文字转载自 USANews 讨论区 】
发信人: BCQ (不差钱), 信区: USANews
标 题: 最合理的税收公式
发信站: BBS 未名空间站 (Sat Mar 26 14:24:24 2016, 美东)
首先,取消一切deduction,最多保留一些按人头的exemption
第二,对所有收入,一视同仁
最后,按以下公式
min is the tax free income
maxr is the maximum rate
public class SocialismTax {
public static double computeTax(
double income, double min,
double maxr, double a, double b) {
if (income <= min) return 0;
double x = income - min;
double r = a + b * x;
if (r > maxr) r = maxr;

return r * x;
}
... 阅读全帖

发帖数: 1
23
来自主题: Military版 - 你看看mit 这破论坛

你写了什么不“垃圾”的东西?System.out.println("Hello World");?
D*****r
发帖数: 2
24
if (System.out.println(11-x)) {}
没分号
B*Q
发帖数: 25729
25
来自主题: USANews版 - 最合理的税收公式
首先,取消一切deduction,最多保留一些按人头的exemption
第二,对所有收入,一视同仁
最后,按以下公式
min is the tax free income
maxr is the maximum rate
public class SocialismTax {
public static double computeTax(
double income, double min,
double maxr, double a, double b) {
if (income <= min) return 0;
double x = income - min;
double r = a + b * x;
if (r > maxr) r = maxr;

return r * x;
}
@Override
public String toString() {
System.out.println("社会主义万岁");
}
}
B*Q
发帖数: 25729
26
首先,取消一切deduction,最多保留一些按人头的exemption
第二,对所有收入,一视同仁
最后,按以下公式
min is the tax free income
maxr is the maximum rate
public class SocialismTax {
public static double computeTax(
double income, double min,
double maxr, double a, double b) {
if (a <= 0 || b <= 0) {
throw new Exception("打倒资本家的乏走狗!");
}
if (income <= min) return 0;
double x = income - min;
double r = a + b * x;
if (r > maxr) r = maxr;

return r * x;
}
@Override
public String toString()... 阅读全帖
z*******y
发帖数: 578
27
来自主题: JobHunting版 - 贴几道某大公司的面试题
另外附上java 写的code
写code的时候发现上面两种情况其实是一种情况
private static void calculatePermutation(int N, int k) {
StringBuilder str = new StringBuilder();
boolean B[] = new boolean[N];
for (int i = 0; i < N; i++) {
int f = factorial(N - i - 1);
int num = k / f + 1;
for (int j = 0; j < N; j++) {
if (B[j] == false) {
num--;
if (num == 0) {
str.append(j + 1);
B[j] = true;
break... 阅读全帖
r****s
发帖数: 1025
28
public class StringPermutation {

public static void permutate(String aString, String resultString, int
curlevel)
{
if (curlevel==0)
{
System.out.println(resultString);
}
else
{

for (int i=0;i {
String bString="";
char curChar=aString.charAt(i);
String stringToPassIn=resultString+curChar;

bString+=aString.substr
s*******e
发帖数: 174
29
public void printTree(TreeNode root)
{
for(int i=0;;i++) {
if(printLevel(root,i,0)) System.out.println();
else break;
}
}

private boolean printLevel(TreeNode root, int level, int currentLevel) {
if(root==null) return false;
if(level==currentLevel)
{
System.out.print(root.value + " ");
return true;
}
else if(currentLevel < level)
{
return printLevel(root.left,level,currentLevel+1)&&
printLevel(root.right,level,currentLevel+1);
}
else
l**********9
发帖数: 537
30
来自主题: JobHunting版 - 问一个Java regexp的题
请教一下,这个打印什么:
System.out.println("Java".replaceAll("\w*", "RX"));
为什么是2个RX,而不是一个RX, 谢了
l**********9
发帖数: 537
31
来自主题: JobHunting版 - 问一个Java regexp的题
yes, it is \w*
System.out.println("Java".replaceAll("\w*", "RX"));
s******t
发帖数: 2374
32
来自主题: JobHunting版 - Facebook phone screen
两个方法可以这么做么?如果A和B是disjoint的set的话。
=============递归:
int a[];
int b[];
if(a.length==0||b.length==0) return;
foo(a,0, b, 0);
void foo(int a[],int i, int b[], int j){
System.out.print(a[i]);
System.out.println(b[j] + ',');
if(++j >= b.length) {
i++;
j = 0;
}
if(i >= a.length) return;
foo(a, i, b, j);
}
============非递归
void foo(int a[], int b[]){
for(int i=0; i< a.length; i++){
for(int j=0; j< b.length; j++){
System.out.print(a[i]);
System.
s******t
发帖数: 2374
33
我想了好久还是不知道怎么用递归做。。。
笨死了。
上来求教一下,不想浪费时间了。
如果inorder,可以用static变量的话我似乎还能写一个出来,不过static变量应该是不被favorable的吧。。。
static int = k;
void search(Node cur){
if(cur == null || index < 0) return;
search(cur.left);
if(--index == 0) {System.out.println(cur.value); return;}
search(cur.right);
}
很土。。。。感觉是totally wrong....
s******t
发帖数: 2374
34
难道是这么写?
int search(Node cur, int index){
if(cur == null) return index;
if(index < 0) return -1;
index = search(cur.left, index);
if(--index == 0) {System.out.println(cur.value); return -1;}
index = search(cur.right, index);

return index;
}
l**u
发帖数: 368
35
不过说实话,我没太看懂。
我看的这些a呀f呀就晕掉了
可以用bit运算做的话,不知道对不对。
int counter =0;
int i = 1212321;
i = Math.abs(i);
while (i > 0) {
i = i >>> 1;
if ((i & 0X1) == 1) {
counter++;
}
}
System.out.println(counter);
I**A
发帖数: 2345
36
来自主题: JobHunting版 - 这个很老的Java Trick
你们谁能解释一下为什么结果是Sub1 2? 多谢!
这个println到底是怎么 exactly being executed?
I**A
发帖数: 2345
37
来自主题: JobHunting版 - 排列组合害死人啊
递归就可以了。
我纠结递归有一阵儿了
所以编了一些程序
public static void combine( String instr ){
int length = instr.length();
StringBuilder outstr = new StringBuilder();
doCombine( instr, outstr, length, 0 );
}
public static void doCombine(String instr, StringBuilder outstr, int
length, int start ){
for( int i = start; i < length; i++ ){
outstr.append( instr.charAt(i) );
System.out.println( outstr );
if( i < length - 1 ){
A********l
发帖数: 184
38
来自主题: JobHunting版 - 排列组合害死人啊
似乎普通的二重循环就可以了。
for(int i = 0, n = instr.length(); i < n; i++) {
for (int j = i + 1; j <= n; j++) {
System.out.println(instr.subString(i, j));
}
}
I**A
发帖数: 2345
39
来自主题: JobHunting版 - 问个string combination的问题
这个Java pass primitives by value, object by reference
是臭名昭著的confusing..
这个link不能帮我解释为什么放在函数内部不可以?
不过倒是提醒了我
可以把hashset 的object reference当参数传递 ..:p
public void doCombine(char[] instr, StringBuilder outstr, HashSet<
String> set, int start, int end){
for(int i=start; i outstr.append(instr[i]);
if(!set.contains(outstr.toString())){
System.out.println(outstr);
set.add(outstr.toString());
}
doCombine(
y*********e
发帖数: 518
40
来自主题: JobHunting版 - A tree question
分层遍历,也可以用 vector 。
void levelTraverse(Tree root) {
Vector thisLevel = new Vector();
Vector nextLevel = new Vector();
thisLevel.add(root);
while (!thisLevel.isEmpty()) {
foreach (Tree tree in thisLevel) {
print(tree);
nextLevel.addAll(tree.children());
}
thisLevel.clear();
thisLevel.addAll(nextLevel);
nextLevel.clear();
println();
}
}
b********r
发帖数: 118
41
lz没说zig-zag traverse不能recersive吧
我的java code, run过了
public static void zigZagTraverse(BinaryTreeNode root){
if (root == null) return;
Stack curStack = new Stack();
curStack.push(root);
zigZag(curStack, true);
}

public static void zigZag( Stack nodes, boolean
leftThenRight ){
Stack s = new Stack();
while ( !nodes.isEmpty() ){
BinaryTreeNode node =... 阅读全帖
c**s
发帖数: 23
42
来自主题: JobHunting版 - 请教一道面试题
static void printSum(int[] a, int index, int sum, ArrayList
results) {
if (sum == 0) {
System.out.println(results);
return;
}
for (int i = index; i < a.length; i++) {
if (sum >= a[i]) {
results.add(a[i]);
printSum(a, i, sum - a[i], results);
results.remove(results.size() - 1);
}
}
}
@Test
public void testPrintSum() {
printSum(new int[] { 1, 2, 6, 7, 3 }, 0, 7, new ArrayList());
}
Output:
[1, 1, 1, 1,
P********l
发帖数: 452
43
来自主题: JobHunting版 - 求教一个算法面试问题,被难住了
受益匪浅。
非常佩服han6,redcloud的数学推导。
这是按照han6的思路写的代码。
http://code.google.com/p/sureinterview/source/browse/test/test1/Matrix1.java#22
======
void generate(int n, int m) {
Integer[] segEnd = new Integer[n - 1];
for (int i = 0; i < n - 1; i++) {
segEnd[i] = i;
}
CombinationImpl combn = new CombinationImpl(Lists
.newArrayList(segEnd), m - 1);
for (List lastPos : combn) {
Integer[] codeSeed = new ... 阅读全帖
g**********y
发帖数: 14569
44
来自主题: JobHunting版 - Google的面经
radiochromatogram * suspensefulnesses = 289
public class WordProduct {
private final static String DIR = "src/test/resources/com/practice/
search";

public void search() {
int N = 30;
String content = FileHelper.readFile(DIR + "/WORD.LST");
String[] words = content.split("\n");
HashSet[] set = new HashSet[30];
HashMap map = new HashMap();

for (int i=0; i set[i] = ... 阅读全帖
d****j
发帖数: 293
45
来自主题: JobHunting版 - Facebook Phone Inteview + 流程请教
第一轮第二题
电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
印出所有的subsets,但最多只能实现到32个数的数组)
public static void printPowerSet(int[] set) {
int[] index = new int[set.length];
int endidx = 0;
printPowerSetSolver(set, index, endidx);
}
public static void printPowerSetSolver(int[] set, int[] index, int endidx) {
if (... 阅读全帖
d****j
发帖数: 293
46
来自主题: JobHunting版 - Facebook Phone Inteview + 流程请教
第一轮第二题
电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
印出所有的subsets,但最多只能实现到32个数的数组)
public static void printPowerSet(int[] set) {
int[] index = new int[set.length];
int endidx = 0;
printPowerSetSolver(set, index, endidx);
}
public static void printPowerSetSolver(int[] set, int[] index, int endidx) {
if (... 阅读全帖
b*****e
发帖数: 474
47
来自主题: JobHunting版 - O(NlogN) largest rectangle in histogram
我来抛砖吧。
O(n) 的解法大家都知道了吧。这个是O(n log n)的,比较直观点,
就是简单的Divide & Conquer,分别计算前半和后半的最大矩形面积,
然后和贯穿中间的最大矩形比较面积。我用最普通的前后扫描方法
来确定贯穿中间的最大矩形面积(O(n)时间)。所以这个算法和
MergeSort的情形一样,都是分成两个一半大小的子问题,然后O(n)
时间来合成。所以是O(nlogn)。
Java 程序:
public class histo {
public static int maxRect(int[] table ) {
return maxRect(table, 0, table.length-1);
}
public static int maxRect(int[] table, int start, int end) {
if ( start == end ) return table[start];
if ( start == end-1)
return Math.max(Math.max(ta... 阅读全帖
l*********r
发帖数: 674
48
来自主题: JobHunting版 - 感想: 美国人才严重浪费
很多人以为CS = coding = println("hello world");
有些学生物的也很自豪的说:我也会编程。这就跟小学生学了一年英文就说:我也会用
英语写小说了一样。

祸害范围不广,但是如
P********l
发帖数: 452
49
来自主题: JobHunting版 - Facebook Hacker Cup
public void test() {
int num = 2147483646;
// num = 100;
num = 2147395601;
Set hs = new HashSet((int) (Math.sqrt(num)) + 100);
for (int i = 0; i < Math.sqrt(num); i++) {
hs.add(i * i);
}
for (Integer i : hs) {
int j = num - i;
if (j < i)
continue;
if (hs.contains(j)) {
System.out.println(i + ", " + j);
}
}
}
21473956... 阅读全帖
s********y
发帖数: 161
50
来自主题: JobHunting版 - 问一下prefix tree (trie) 的题目
static final int phoneLength=7;
char [][] keypad={{'0'},{'1'},{'a','b','c'},{'d','e','f'},
{'g','h','i'},{'j','k','l'},{'m','n','o'},
{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}};
void printWords(int [] phoneNumber){
char result []= new char [phoneLength];
doPrintWords(phoneNumber,result,0);
}
void doPrintWords(int []phoneNumber, char []result, int curIndex){
if(curIndex==phoneLength){
System.out.println(result);
r... 阅读全帖
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)