由买买提看人间百态

topics

全部话题 - 话题: arraylist
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
p*****2
发帖数: 21240
1
刚才看了一下ArrayList里边可以加null, 用两个arraylist + BFS应该可以很简单的
完成了。
c*****2
发帖数: 34
2
来自主题: JobHunting版 - 狗店面,求BLESS
第一题这样做可以吗?
做pre-order traversal,如果两个node相同比较parent list是否相同。
然后递归看左右子树是否相同。
public class TreeNode {
TreeNode left;
TreeNode right;
int val;
ArrayList parents = new ArrayList();
public TreeNode(int val) {this.val = val;}
}
public boolean isIdentical(TreeNode t1, TreeNode t2) {
if (t1 == null && t2 == null) return true;
if (t1 == null && t2 != null) return false;
if (t1 != null && t2 == null) return false;
if (t1.val != t2.val) return false;
... 阅读全帖
c********t
发帖数: 5706
3
还没看你的codes,不过感觉set不好,因为最后的输出是要求顺序的。
我想的与lanti一样,用list与map结合。for each string, convert to small case
and bucket sort, use the converted string as key in map, value is the index
in arraylist, maintain/update the list by using this index.
the result is the arraylist.
e****e
发帖数: 418
4
IMHO, HashSet+ArrayList+从后往前扫描 is the best solution. Time complexity
is log(n+m), n is num of words, m is num of anagrams. The space complexity
is log(m).
Set set = new HashSet();
List list = new ArrayList();
for( int i = words.size()-1; i >= 0; i-- ) {
String sortedWord = sort( words.get( i ).toLowerCase() );
if ( !set.contains( sortedWord ) ) {
set.add( sortedWord );
list.add( word );
}
}
Collections.reverse( list );
return list;
i*********7
发帖数: 348
5
来自主题: JobHunting版 - 问道算法题。
如果给你一个arraylist,里面装的都是time span,
可以假设数据结构如下。
class TimeSpan{
Long startTime;
Long endTime;
};
ArrayList
假设这个List是按照startTime排好序的。
现在我给你一个time,能否低于O(n)的方法找到所有startTime<=time<=endTime的span?
我知道可以用O(logn)的算法知道有多少个这样的span,但有没有办法低于O(n)还能找
出全部?而不仅仅是知道个数。
===========
好吧,我可能说的也有问题,我觉得O(logn)是没办法知道的,当俺错了。TAT。。
s****0
发帖数: 117
6
我觉得你没有理解人家的思路。这里是我的Java实现,仅供参考。
//- 5.2.3 Generation with minimal changes
package mylib;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Perm implements Iterable>, Iterator> {
final int n;
final int pos[];
final Integer perm[];
final boolean dir[];
final T[] data;
int cnt;
public Perm(List data) {
this.n = data.size();
pos = new int[n];
perm = new Integer[n];
dir = new boo... 阅读全帖
c*******i
发帖数: 30
7
来自主题: JobHunting版 - Permutation leetcode-

null
str==null没事,
str.length()==0 得return new ArrayList();
不然, 这里会有问题~~
ArrayList strings=permutes(other);
for(int i=0;i
m***l
发帖数: 45
8
要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
恳请java前辈指点
万分感谢!!
将类似这样的一个比较长的.log文件解析开
[18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
[18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
[18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
。。。。。。。
按时间解析开,比如上面的一段就是按时间分的3条
要求是:
+不能用stream把整个文件load到内存
+还要把每个时间和后面的内容解析开
+最好用普通的方法不用特别的类
其... 阅读全帖
c*****u
发帖数: 562
9
来自主题: JobHunting版 - 刚刚结束的linkedIn电面
顺着楼上的思路解一题:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class DeepIteratorImpl2 {
private int cursor;
private List elements;
// Constructor
public DeepIteratorImpl2(Collection> c) {
if (c == null) {
throw new IllegalArgumentException("Invalid input
Collection of Data");
}
this.cursor = 0;
this.elements = new ArrayList(... 阅读全帖
c*****a
发帖数: 808
10
来自主题: JobHunting版 - 一个Java面试题目
如果用java list interface,我只懂arraylist, linkedlist
如果arraylist就跟array没区别
linkedlist的话,不清楚是什么implementation,doubly/singly?
w********p
发帖数: 948
11
又对比了一遍code, 大概知道问题出在哪里了。
之所以有结果如下:
Box(1,7,4)
Box(4,9,6)
Box(2,10,16)
是因为 Box(2,10,16) 比Box(1,7,4)大,所以 Box(2,10,16) 把 Box(1,7,4)的
stackmap都加上了。
if (bottom != null) {
//问题在于这句,加上就ok。
max_stack = new ArrayList(max_stack);
max_stack.add(0, bottom);
}
stack_map.put(bottom, max_stack);
return max_stack;
max_stack = new ArrayList(max_stack); 貌似是 max_stack和原答案clon
()的道理是一样的。自我拷贝下,改改地址, 挂在map上,防止上个level运算对其修
改。
书上出错,是挂到Map上以后再clone, 这个map就出错了。
再次谢谢coldk... 阅读全帖
a******3
发帖数: 113
12
定义了一个class:
class classA(i:Int, s:String) extends classB(i,s) with traitA{
....
}
在新的一个class里引用了java的一个数据结构,例如ArrayList
现在创建 val al=new ArrayList[classA]()
因为classA里面没有实现Comparable,所以会报错 classA cannot be cast to java.
lang.Comparable
现在只知道改extends来实现, 但是这个classA必须要extends classB,所以classB不
能改,请问一下有什么办法实现这个comparable?
谢谢!
z***2
发帖数: 66
13
来自主题: JobHunting版 - yelp 电面面经应该已跪了
這樣寫對嗎?
class Solution {
ArrayList result;
public TreeNode(TreeNode root,String name){
result= new ArrayList();
recur(root,name,false);
return result;
}

public void recur(TreeNode node, String name, boolean record){
if(node !=null){

if(record){
result.add(node.val);
}
... 阅读全帖
z***2
发帖数: 66
14
来自主题: JobHunting版 - yelp 电面面经应该已跪了
看錯了題目 >< , 這下應該對了
class Solution {
ArrayList result;
public TreeNode(TreeNode root,String name){
result= new ArrayList();
recur(root,name,false);
return result;
}

public void recur(TreeNode node, String name, boolean record){
if(node !=null){

if(record){
if(node.left==null && node.right ==null){... 阅读全帖
p*****2
发帖数: 21240
15
来自主题: JobHunting版 - 请教:find Kth prime number

大牛看看对不对
int findPrime(int count){
ArrayList al=new ArrayList();
int i=1;
loop:
while(count>0){
i++;
for(int j=0;j if(i%al.get(j)==0){
continue loop;
}
}
al.add(i);
count--;
}

return al.get(al.size()-1);
}
w******j
发帖数: 185
16
这个题,如果不是最好return arraylist的话,
http://www.geeksforgeeks.org/reverse-level-order-traversal/
但是最后它还是return arraylist了,这样的话,这道题就没什么意思了....也看不出
来做法不一样了...
L*******e
发帖数: 114
17
来自主题: JobHunting版 - 问道题: prime factor
综合楼上的解答,我试着写了一个。
/**
* find all the prime up to n(including n)
*/
public static List findPrimes(int n){
List res = new ArrayList();
if (n <= 1) return res;
// create a boolean array to track whether a number
// is a prime or not
boolean[] primeTrack = new boolean[n+1];
for (int i = 2; i <= n; i++){
primeTrack[i] = true;
}
int upper = (int)Math.sqrt(n);
for (int i = 2; i <= upper; i++){
for (int j = i * i; j <= n; j +=... 阅读全帖
W**********i
发帖数: 136
18
来自主题: JobHunting版 - 问个递归的问题
请问一下这里, if(temp.size==k)
{
res.add(new ArrayList(temp));
return;
}
为啥要 res.add(new ArrayList(temp));? 为什么不是res.add(temp);?
我试过res.add(tem),输出的都是空的了
g***s
发帖数: 30
19
来自主题: JobHunting版 - G 家电面题目, 欢迎讨论!
The Python is super, but if you do not know it, try to refer java below:
public List BinaryOutput(String input) {
if (input == null || input.empty())
return null;
List output = new ArrayList();
List temp = new ArrayList("");
for (int i = 0; i < input.length(); i++) {
output.clear();
for (String s : temp) {
if (input.charAt(i) == '?') {
output.add(s + '0');
output.add(s + '1');
}
else {
outpu... 阅读全帖
x****8
发帖数: 127
20
来自主题: JobHunting版 - G 家电面题目, 欢迎讨论!
private static void printCombinations(String string) {
List positions = new ArrayList();
List values = new ArrayList();
for(int i = 0; i < string.length(); ++i){
if(string.charAt(i) == '?'){
positions.add(i);
values.add(-1);
}
}
int pos = 0;
while(pos >= 0){
int val = values.get(pos) + 1;
if(val == 2){
values.set(p... 阅读全帖
e***l
发帖数: 710
21
来自主题: JobHunting版 - 请教一道比身高题目
为什么前面的解法都怎么复杂?假设输入已经根据身高从大到小排序
A={15, 13, 12, 10, 6, 5, 4, 3}
B={ 0, 1, 2, 0, 1, 0, 1, 2}
开一个空链表C,依次把身高h插入C的B[h]位置,结束。简单吧?
ArrayList C = new ArrayList();
for(int i=0;i C.insert(B[A[i]], A[i]);
按顺序输出C:{5,4,3,10,6,15,13,12}
H*****l
发帖数: 1257
22
来自主题: JobHunting版 - 问下LeetCode上的题目:count and say
我把重复的位置记下来,从第7个开始,整体的string就是6部分的string合起来。
但是每次都是
Output Limit Exceeded
不知道为什么。。。
题目是:
The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
--------------------------------------------------------------
public String count... 阅读全帖
t*******2
发帖数: 182
23
一老印,电面迟到15分钟,打过来也不花两分钟介绍一下team之类的,直接上题。。
1) Can you explain dependency injection with an example, in java.
我一下子懵了,听都没听说过这个东西,什么也扯不出来,只好老实承认没听说过。。
事后google了一下,好像是Spring framework里面的一个概念。。
2) Can you create memory leak with a sample program.
也是完全没准备过,想了两分钟想不出什么来,老印直接开始问下题
3) What do you think is the output of this sample program
public class MyThread implements Runnable {
String myString = "Yes ";
public void run() {
this.myString = "No ";
}
public static void main(String[] args) {
MyThread t ... 阅读全帖
z****e
发帖数: 54598
24
来自主题: JobHunting版 - 说一下学术派的代码(java)
其实命名显得professional的话,java有一个超级容易的做法
List list = new ArrayList();
就算现实中,也不过是在list前面加点前缀罢了
List itemsList = new ArrayList();
搞定
z****e
发帖数: 54598
25
来自主题: JobHunting版 - 说一下学术派的代码(java)
差不多
它们说的是类似这种的做法
List list = new ArrayList();
但是问题在于,我不能确定里面的element一定是String
完全可以是其它的东西
有挨滴用了1.7的简写方式
List list = new ArrayList<>();
然后在纽约阿妈总的某个人物,举出了guava的类和方法
which是第三方google提供的类库
但是我不认为对于没有经验的人来说是必需掌握的
w*********m
发帖数: 4740
26
来自主题: JobHunting版 - 说一下学术派的代码(java)
这都是基本要求呀。
另外命名最好不要用缩写。多看看goog的coding style 规范
类目用名词
多用@
少用synchronized的类
另外尽量用super class/interface传参数。比如用List不要用ArrayList, 尽管调用是
是ArrayList
l*n
发帖数: 529
27
来自主题: JobHunting版 - 请教一道interval的题目
描述得看不懂啊。写了个感觉比较简明的,就是对所有不可再分的区间进行计数。
排序O(nlogn)+查找O(2*nlogn)+计数O(n*m),其中m是平均区间分割数。
List mostOverlapped(Interval[] ints) {
Set set = new HashSet();
for (Interval itv : ints) {
set.add(itv.start);
set.add(itv.end);
}
// all candidate intervals;
List ends = new ArrayList(set);
Collections.sort(ends);
int max = 0;
// count overlapped times of each candidates
int[] counts = new int[ends.size()];
for (i... 阅读全帖
p*****2
发帖数: 21240
28
来自主题: JobHunting版 - 我的面试题总结
好多人问,我就发到这里吧。
面试题的构成和分类
首先声明一下,这里的面试题主要所指数据结构和算法的题目,题目的分析集中在
Leetcode上面的题目上。
我认为一道面试题由以下几个方面组成的
Question
Data structure in question
Data structure in solution
Algorithm in solution
Coding
题目:非常关键,一个题目通常有一些相应的变形题目,同一个题目可能有不同的要求
。比如时间复杂度,空间复杂度的要求,比如recursive,
iterative的要求。而根据题目的变形与要求,可能会极大的影响到你能够采取的数据
结构和算法。
问题中的数据机构:问题中有可能带数据结构,有可能没有数据结构,有可能是可以自
定义数据结构
解决方案中的数据结构:可以是in-place的,也就是利用已有的数据结构,也可能是创
建新的数据结构。新的数据结构跟已有的数据结构没有必然的联系,而很多问题都是一
题多解,可能采取不同的数据结构。
算法:一般来说,当解决方案中的数据结构确定以后,算法也就确定了。同样,一旦解
决方案的算法确定... 阅读全帖
p*****2
发帖数: 21240
29
来自主题: JobHunting版 - 我的面试题总结
好多人问,我就发到这里吧。
面试题的构成和分类
首先声明一下,这里的面试题主要所指数据结构和算法的题目,题目的分析集中在
Leetcode上面的题目上。
我认为一道面试题由以下几个方面组成的
Question
Data structure in question
Data structure in solution
Algorithm in solution
Coding
题目:非常关键,一个题目通常有一些相应的变形题目,同一个题目可能有不同的要求
。比如时间复杂度,空间复杂度的要求,比如recursive,
iterative的要求。而根据题目的变形与要求,可能会极大的影响到你能够采取的数据
结构和算法。
问题中的数据机构:问题中有可能带数据结构,有可能没有数据结构,有可能是可以自
定义数据结构
解决方案中的数据结构:可以是in-place的,也就是利用已有的数据结构,也可能是创
建新的数据结构。新的数据结构跟已有的数据结构没有必然的联系,而很多问题都是一
题多解,可能采取不同的数据结构。
算法:一般来说,当解决方案中的数据结构确定以后,算法也就确定了。同样,一旦解
决方案的算法确定... 阅读全帖
d******p
发帖数: 335
30
没签NDA神马的,攒人品了~
电面:
1. 给一个矩阵如下:
a b c d
e f g h
i j k l
m n o p
要求按如下方式打印:
a f k p
b g l
c h
d
e j o
i n
m
2. 设计题:
如果要给每个Pin加上一个price tag,怎么去evaluate这是否work?
(1) A/B testing -> 可以有好几种,讨论优劣性
(2) metrics to monitor -> click rate, impression, return user ratio, etc
上门:
1. 假设Pinterest的更新系统只能显示3条更新,怎么设计?更新可以是:用户评论、
加新的pin,repin等等,一共可能有一千多种。讨论各种方法的优劣性
回答:a ranking problem...
2. 给如下的数据格式:

比如有一组数据:
1, 3, 100
2, 4, 200
5, 6, 300
。。。
这些数据时间点可能有重合。在时间段2~3之间,value的和是100+200 = 30... 阅读全帖
l*n
发帖数: 529
31
来自主题: JobHunting版 - saleforce 店面,攒人品吧。
void printPrimes(int n) {
assert (n > 0);
ArrayList memo = new ArrayList();
if (n < 2)
return;
memo.add(2);
for (int i = 3; i <= n; i++) {
int k = 0;
while (memo.get(k) * memo.get(k) <= i && i % memo.get(k) != 0)
k++;
if (memo.get(k) * memo.get(k) > i)
memo.add(i);
}
System.out.println(Arrays.toString(memo.toArray()));
}
z****e
发帖数: 54598
32
来自主题: JobHunting版 - saleforce 店面,攒人品吧。
public void printPrimeNum(int num) {
List list = new ArrayList();
//1
int sqrt = (int) Math.round(Math.sqrt(num));
//2
for (int i = 2; i <= sqrt; i++) {
boolean isPrime = true;
for (int j : list) {
if (i % j == 0) isPrime = false;
}
if (isPrime) list.add(i);
}
//3
List temp = new ArrayList();
for (int i = sqrt + 1; i <= nu... 阅读全帖
x*******8
发帖数: 145
33
来自主题: JobHunting版 - leetcode的OJ也会有错吗??
correct me if I'm wrong. 有几次用static field 去做也会有bug,然后改成
ArrayList作为参数带入,就过了,不知道是不是bug。这题你可以用一个ArrayList来
记录错误的node,然后最后调换list中的value。
d******o
发帖数: 3
34
来自主题: JobHunting版 - 上一道小题
haha 刚开始学java, 测试过了,方法不知道对不对,把int 变成string, 然后reverse(
). 如果 reverse 后 两个string 一样,就可以了
import java.util.ArrayList;
import java.util.List;
public class PalindromicNumbers {
public PalindromicNumbers() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
pNum(16, 162);
}

public static void pNum(int m, int n)
{
List intL= new ArrayList();

... 阅读全帖
l*n
发帖数: 529
35
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
arraylist没有控制类型是什么意思?java是可以check list类型的,到了最后的
integer层的时候,instanceof (ArrayList)就是false了。
if (x instanceof Collection){
}

0,
m*****n
发帖数: 204
36
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
攒了个段子请大牛点评一下:
// Not thread-safe
// Talk about validation requirement: none vs in next() vs in constructor
private static class DeepIterator implements Iterator {
private final Iterator myIterator;

private final Class eleType;

private final Iterator empty = new ArrayList().iterator();

private Iterator head = empty;

DeepIterator(List list, Class eleType) {
this.myIterator = list.iterator();
this.eleType = e... 阅读全帖
l*n
发帖数: 529
37
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
arraylist没有控制类型是什么意思?java是可以check list类型的,到了最后的
integer层的时候,instanceof (ArrayList)就是false了。
if (x instanceof Collection){
}

0,
m*****n
发帖数: 204
38
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
攒了个段子请大牛点评一下:
// Not thread-safe
// Talk about validation requirement: none vs in next() vs in constructor
private static class DeepIterator implements Iterator {
private final Iterator myIterator;

private final Class eleType;

private final Iterator empty = new ArrayList().iterator();

private Iterator head = empty;

DeepIterator(List list, Class eleType) {
this.myIterator = list.iterator();
this.eleType = e... 阅读全帖
m****v
发帖数: 88
39
来自主题: JobHunting版 - FLGMO面经
背景:国内最好的技校+美本公立普通学校CS+东海岸比较好的学校CS MS
Amazon和一个湾区大公司的实习 有大量内推
CC150 leetcode过了一遍,题刷的不是很好,不过由于海投,面试经验比较多
Onsite round: Google(内推直接onsite, rej), Facebook(内推,rej), LinkedIn(内
推,offer), Oracle(Target school, offer), Amazon(内推直接onsite,drop),
Microsoft(一轮Campus之后onsite, offer)
Phone/Campus: Dropbox(rej), Pinterest(2nd round rej, 很可惜), TwoSigma(rej,
大师兄内推, 可惜), Goldman Sachs core Strats(rej), Citadel tech(rej), SIG(
drop), TGS(rej), AppNexus(rej, 莫名其妙), Airbnb(drop), EA Games(drop)
Code test: Twitter(re... 阅读全帖
m****v
发帖数: 88
40
来自主题: JobHunting版 - FLGMO面经
背景:国内最好的技校+美本公立普通学校CS+东海岸比较好的学校CS MS
Amazon和一个湾区大公司的实习 有大量内推
CC150 leetcode过了一遍,题刷的不是很好,不过由于海投,面试经验比较多
Onsite round: Google(内推直接onsite, rej), Facebook(内推,rej), LinkedIn(内
推,offer), Oracle(Target school, offer), Amazon(内推直接onsite,drop),
Microsoft(一轮Campus之后onsite, offer)
Phone/Campus: Dropbox(rej), Pinterest(2nd round rej, 很可惜), TwoSigma(rej,
大师兄内推, 可惜), Goldman Sachs core Strats(rej), Citadel tech(rej), SIG(
drop), TGS(rej), AppNexus(rej, 莫名其妙), Airbnb(drop), EA Games(drop)
Code test: Twitter(re... 阅读全帖
q******n
发帖数: 116
41
来自主题: JobHunting版 - 发个g的电面

ArrayList input = new ArrayList();
CountIterator it = new CountIterator(input);
while(it.hasNext())
system.out.print(it.next());
输入input 11223344 打印出 1223334444 基本上是这个意思,类似的iterator实现题
版上有可以搜下
l********r
发帖数: 140
42
来自主题: JobHunting版 - CS: print all combination from an array
Given an array (assume numbers, no duplicate),
print all its combinations.
My code clearly generates duplicates. :-(
public static void combination(ArrayList data)
{
combination(data, 0);
}
private static void combination(ArrayList data, int index)
{
if (index >= data.size())
return;
printArrayUpToIndex(data, index);
for (int i=index; i {
swap(data, index, i);
combi... 阅读全帖
r*****e
发帖数: 30
43
public boolean isMultiple(String s){
if(s==null || s.length()<3) return false;
ArrayList pattern = new ArrayList();
pattern.add(s.charAt(0));
pattern.add(s.charAt(1));
int times = 1;
int pos = 0;
for(int i=2; i if(s.charAt(i)==pattern.get(pos)){
if(pos==pattern.size()-1){
times++;
pos = 0;
}
else{
... 阅读全帖
r*****e
发帖数: 30
44
public boolean isMultiple(String s){
if(s==null || s.length()<3) return false;
ArrayList pattern = new ArrayList();
pattern.add(s.charAt(0));
pattern.add(s.charAt(1));
int times = 1;
int pos = 0;
for(int i=2; i if(s.charAt(i)==pattern.get(pos)){
if(pos==pattern.size()-1){
times++;
pos = 0;
}
else{
... 阅读全帖
l********3
发帖数: 33
45
说的很对,当时我想用arraylist,或者先定好数组的长度,面试官制止了我,说是不
知道size。
如果强行用arraylist的话,插入中间的复杂度可能是O(n),这样的话总的复杂度O(N2)
,这样还不如全pop()出来,在排序,只要O(nlogn)
面试官的方法是:用queue存小的数,stack存大的数,先pop()一个数,再peek一下,
比较这两个数,如果pop的大,就代表肯定是quack的尾巴,反之肯定是头,然后插入
queue或者stack就行了。
对于有repeated number的话,我实在是没想出来怎么弄。坐等大神吧。
另外如何能更好的应对这种题目尼?谢谢
l********3
发帖数: 33
46
说的很对,当时我想用arraylist,或者先定好数组的长度,面试官制止了我,说是不
知道size。
如果强行用arraylist的话,插入中间的复杂度可能是O(n),这样的话总的复杂度O(N2)
,这样还不如全pop()出来,在排序,只要O(nlogn)
面试官的方法是:用queue存小的数,stack存大的数,先pop()一个数,再peek一下,
比较这两个数,如果pop的大,就代表肯定是quack的尾巴,反之肯定是头,然后插入
queue或者stack就行了。
对于有repeated number的话,我实在是没想出来怎么弄。坐等大神吧。
另外如何能更好的应对这种题目尼?谢谢
G**C
发帖数: 365
47
来自主题: JobHunting版 - 灭三哥也不容易
Time O(n), space O(1)
ArrayList removeNegative(ArrayList a) {
if (a == null)
return a;
int nextNegative = 0, nextNonNegative = 0;
while (nextNegative < a.size()) {
if (a.get(nextNegative) >= 0) {
nextNegative++;
continue;
}
nextNonNegative = Math.max(nextNonNegative, nextNegative + 1);
while (nextNonNegative < a.size() && a.get(nextNonNegative) < 0) {
nextNonNegative++;
}
if (nextNonNegat... 阅读全帖
G**C
发帖数: 365
48
来自主题: JobHunting版 - 灭三哥也不容易
大牛,你的版本也work,且适用于linkedlist,但remove开销有点大。
我的版本追求性能,因此复杂了些,主要针对interviewer的口味。
我还准备了一个生产代码版本,基于Guava库.
ArrayList removeNegative2(ArrayList a) {
if (a == null)
return a;
return Lists.newArrayList(Iterables.filter(a, new Predicate() {
@Override public boolean apply(Integer input) {
return input >= 0;
}
}));
}
l*****a
发帖数: 14598
49
来自主题: JobHunting版 - 星期一福利:某公司店面题
我想这么做,你看咋样
List list=new ArrayList();
List result=new ArrayList();
for(int i=0;i if(input.charAt(i)=='?') list.add(0);
}
while(true) {
String cur=genString(input,list);
result.add(cur);
// if all 1 in list, break;
for(int i=list.size()-1;i>=0;i--) {
if(list.get(i)==0) {
list.set(i)=1;
break;
} else {
list.set(i)=0;
}
}
}
return result;
d**e
发帖数: 6098
50
来自主题: JobHunting版 - 星期一福利:某公司店面题
你的code似乎有个bug: while(true)没有条件退出,进入死循环.
我觉得你flip bit的那段code有些问题,它并没有正确地flip, list.get(i)是?的index
,用它来跟0/1比较应该是不正确的.
我把它改成这样,用shift bit来做,不知有没有更好的方法.
public static List genMatchers(String str) {
List results = new ArrayList();
if (str != null && str.length() != 0) {
List questionMarkPositions = new ArrayList();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c... 阅读全帖
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)