冬天快来了,加油
10月11日 极其曲折的一道hard题,英语单词写错了四个。。


10月3 国庆差不多要过去一半了

回忆一下dfs的题,复原IP地址

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 43 44 45
| class Solution { List<String> ans=new ArrayList<String>(); int[] segments=new int[4]; public List<String> restoreIpAddresses(String s) { dfs(s,0,0); return ans;
} public void dfs(String s, int segId, int segStart){ if(segId==4){ if(segStart==s.length()){
StringBuffer sb=new StringBuffer(); for(int i=0;i<4;i++){ sb.append(segments[i]); if(i!=3) sb.append("."); } ans.add(sb.toString()); } return; } if(segStart==s.length()) return;
if(s.charAt(segStart)=='0'){ segments[segId]=0; dfs(s,segId+1,segStart+1); }
int addr=0; for(int segEnd=segStart; segEnd<s.length();segEnd++){ addr=addr*10+s.charAt(segEnd)-'0'; if(addr>0&&addr<=255){ segments[segId]=addr; dfs(s,segId+1,segEnd+1);
}else return; } }
}
|

10月2号
国庆都是简单题

10月1号 国庆快乐 看长津湖去了,忘了打卡 补上

好家伙,一次过了


9月25

9月26

9月27,hard题 瑟瑟发抖

hard题纯手打
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| class Solution { public int numDecodings(String s) { int len=s.length(); if(len==0) return 1; long[] dp=new long[len+1]; if(s.charAt(0)=='0'){ dp[1]=0; }else{ dp[1]=s.charAt(0)=='*'?9:1; }
if(len==1) { return (int)dp[1]; }
dp[0]=1; for(int i=2;i<=len;i++){ int j=i-1; int f1=0,f2=0; char c=s.charAt(j), d=s.charAt(j-1); if(c=='*') f1=9; else if(c>='1'&&c<='9') f1=1; else f1=0; if(c=='*'&&d=='*') f2=15; else if(d=='*'&&c!='*'){ if(c>='0'&&c<='6') f2=2; else f2=1; } else if(d!='*'&&c=='*'){ if(d=='1') f2=9; else if(d=='2') f2=6; else f2=0; } else if(d!=0){ if(d=='1'||d=='2'&&c>='0'&&c<='6') f2=1; } else f2=0;
dp[i]=(f1*dp[i-1]+f2*dp[i-2])%(1000000007); System.out.println(f1*dp[i-1]+f2*dp[i-2]);
} return (int)dp[len]; } }
|
case

9月28

9月29
又是hard题,人没了

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
| class Solution { public int findMinMoves(int[] machines) { int len=machines.length; int sum=0,max=Integer.MIN_VALUE; for(int i=0;i<len;i++){ sum+=machines[i]; } if(sum%len!=0) return -1; int evg=sum/len;
int balance=0; for(int i=0;i<len;i++){ balance+=machines[i]-evg; int current=Math.max(machines[i]-evg,Math.abs(balance)); max=Math.max(max,current); } return max; } }
|
