为什么上午做题的同学说好简单,我下午做,咋就那么难呢
选择难死了
算法第一题就g了
1、wakelock贡献值
咱就是说,这个题,花了1个小时,最后通过率20%(下面是通过率20%的代码······)
public ArrayList<Integer> getWakeLockContrib (ArrayList<ArrayList<Integer>> wakeLock) {
// write code here
ArrayList<Integer> a=wakeLock.get(0);
ArrayList<Integer> b=wakeLock.get(0);
int asize=a.size();
int bsize=b.size();
int asum=0,bsum=0;
for(int i=0;i<asize;i+=2){
asum+=a.get(i+1)-a.get(i);
}
for(int j=0;j<bsize;j+=2){
bsum+=b.get(j+1)-b.get(j);
}
int sub=0;
if(asize>=bsize){
for(int i=0;i<bsize;i+=2){
if(a.get(i+1)>b.get(i+1) && a.get(i)<b.get(i)){
sub=(b.get(i+1)-b.get(i))/2;
}else if(a.get(i+1)<b.get(i+1) && a.get(i)>b.get(i)){
sub=(a.get(i+1)-a.get(i))/2;
}else if(a.get(i)<b.get(i) && a.get(i+1)>b.get(i) && a.get(i+1)<b.get(i+1)){
sub=(a.get(i+1)-b.get(i))/2;
}else if(b.get(i)<a.get(i) && b.get(i+1)>a.get(i) && b.get(i+1)<a.get(i+1)){
sub=(b.get(i+1)-a.get(i))/2;
}
asum-=sub;bsum-=sub;
}
}else{
for(int i=0;i<asize;i+=2){
if(a.get(i+1)>b.get(i+1) && a.get(i)<b.get(i)){
sub=(b.get(i+1)-b.get(i))/2;
}else if(a.get(i+1)<b.get(i+1) && a.get(i)>b.get(i)){
sub=(a.get(i+1)-a.get(i))/2;
}else if(a.get(i)<b.get(i) && a.get(i+1)>b.get(i) && a.get(i+1)<b.get(i+1)){
sub=(a.get(i+1)-b.get(i))/2;
}else if(b.get(i)<a.get(i) && b.get(i+1)>a.get(i) && b.get(i+1)<a.get(i+1)){
sub=(b.get(i+1)-a.get(i))/2;
}
asum-=sub;bsum-=sub;
}
}
ArrayList<Integer> array=new ArrayList<>();
array.add(asum);
array.add(bsum);
return array;
}
2、
长字符匹配逆序短字符,遇见* 默认匹配,返回长字符中第一次匹配完成的下标(ac)
public int findStr (String str, String mod) {
// write code here
if(mod.length()==0) return 0;
StringBuffer sb=new StringBuffer(mod);
String modd=sb.reverse().toString();
for(int i=0;i<str.length();i++){
int a=i,j=0;
while(str.charAt(a)==modd.charAt(j) || modd.charAt(j)=='*'){
if(j==modd.length()-1){
return a;
}
a++;
j++;
if(a>=str.length() || j>=mod.length()) break;
}
}
return -1;
}
3、
翻转链表(ac)
public ListNode reverseList (ListNode head) {
// write code here
ListNode pre=null;
ListNode tmp=head;
ListNode next;
while(tmp!=null){
next=tmp.next;
tmp.next=pre;
pre=tmp;
tmp=next;
}
return pre;
}
#OPPO笔试##面经笔经##23届秋招笔面经#