萬年第四道不會,這該怎麼提高呀!!!
1184. Distance Between Bus Stops
class Solution {
public int distanceBetweenBusStops(int[] distance, int start, int destination) {
int dist=0,dist1=0;
if(start>destination){
int tmp=start;
start=destination;
destination=tmp;
}
for(int i=0;i<distance.length;i++){
dist+=distance[i];
if(i>=start && i<destination){
dist1+=distance[i];
}
}
return Math.min(dist-dist1,dist1);
}
}
class Solution {
public static int[][] monthLength={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
public static String[] symbols={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
public static boolean isleap(int year){
if(year%4==0&&year%100!=0||year%400==0)
return true;
else
return false;
}
public String dayOfTheWeek(int day, int month, int year) {
int sum=0,cur=0;
for(int i=1971;i<year;i++){
sum+=isleap(i)?366:365;
}
if(isleap(year)){ //29天
for(int i=0;i<month-1;i++){
cur+=monthLength[1][i];
}
}
else{
for(int i=0;i<month-1;i++){
cur+=monthLength[0][i];
}
}
sum+=cur+day;
return symbols[(5+(sum-1)%7)%7];
}
}
1186. Maximum Subarray Sum with One Deletion
class Solution {
public int maximumSum(int[] arr) {
int n=arr.length;
int[] endHere=new int[n];
endHere[0]=arr[0];
int max=arr[0];
for(int i=1;i<n;i++)
{
endHere[i]=Math.max(endHere[i-1]+arr[i],arr[i]);
max=Math.max(max,endHere[i]);
}
int[] startHere=new int[n];
startHere[n-1]=arr[n-1];
for(int i=n-2;i>=0;i--){
startHere[i]=Math.max(startHere[i+1]+arr[i],arr[i]);
max=Math.max(max,startHere[i]);
}
for(int i=1;i<n-1;i++){
max=Math.max(max,endHere[i-1]+startHere[i+1]);
}
return max;
}
}