作业帮研发笔试

1.将数组中的0移到后面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private static int[] func(int[] arr) {
int length = arr.length;
int i = 0;
int j = 0;
while (i < length) {
if ((arr[i] != 0)) {
arr[j] = arr[i];
j++;
}
i++;
}
while (j < length) {
arr[j] = 0;
j++;
}
return arr;
}

2.求 PV,UV

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
CREATE TABLE `zybang_uv_pv` (
`url` varchar(255) DEFAULT NULL,
`uid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


INSERT INTO `zybang_uv_pv` (`url`, `uid`) VALUES
('www.zybang.com', 1),
('www.zybang.com', 2),
('www.zybang.com', 3),
('www.zybang.com', 4),
('www.zybang.com', 2),
('www.zybang.com', 3),
('zhibo.zybang.com', 1),
('zhibo.zybang.com', 3),
('zhibo.zybang.com', 4),
('zhibo.zybang.com', 5);

select * from zybang_uv_pv;
+------------------+------+
| url | uid |
+------------------+------+
| www.zybang.com | 1 |
| www.zybang.com | 2 |
| www.zybang.com | 3 |
| www.zybang.com | 4 |
| www.zybang.com | 2 |
| www.zybang.com | 3 |
| zhibo.zybang.com | 1 |
| zhibo.zybang.com | 3 |
| zhibo.zybang.com | 4 |
| zhibo.zybang.com | 5 |
+------------------+------+

输出

+------------------+----+----+
| url | uv | pv |
+------------------+----+----+
| www.zybang.com | 4 | 6 |
| zhibo.zybang.com | 4 | 4 |
+------------------+----+----+
1
2
3
4
5
select uv.url, uv.uv, pv.pv from 
((select url, count(distinct uid) as uv from zybang_uv_pv group by url) as uv) ,
((select url, count(uid) as pv from zybang_uv_pv group by url) as pv)
where uv.url = pv.url
order by uv.url asc;