public int sum2(int[] nums) {
int numsSum[]=new int[4];
if(nums.length>=2)
return nums[0]+nums[1];
// else (nums.length==1)
// return nums[0];
return 0;
}
Expected Run
sum2({1, 2, 3}) → 3 3 OK
sum2({1, 1}) → 2 2 OK
sum2({1, 1, 1, 1}) → 2 2 OK
sum2({1, 2}) → 3 3 OK
sum2({1}) → 1 0 X
sum2({}) → 0 0 OK
sum2({4, 5, 6}) → 9 9 OK
sum2({4}) → 4 0 X
other tests
OK
public int sum2(int[] nums) {
int numsSum[]=new int[4];
if(nums.length>=2)
return nums[0]+nums[1];
if(nums.length==1)
return nums[0];
return 0;
}
public int sum2(int[] nums) {
return nums.length>1?nums[0]+nums[1]:nums.length>0?nums[0]:0;
}
return (nums.length>0?nums[0]:0)+(nums.leng th>1?nums[ 1]:0);
return nums.length>1?nums[0]+nums[1]:nums.l ength>0?nu ms[0]:0;
return nums.length==0?0:nums.length==1?nums [0]:nums[0 ]+nums[1;]
return nums.length<1?0:nums[0]+(nums.length <2?0:nums[ 1]);
return (nums.length>0?nums[0]:0)+// >1 should cover >0 case already in the front right???(nums.leng th>1?nums[ 1]:0);//// >0 should cover >1 case already in the front right???
return nums.length>1?nums[0]+nums[1]:nums.l ength>0?nu ms[0]:0;
The first is saying, if the length is greater than 0 return the first number, if not return 0,
then, if the length is greater than 1, plus the second number, else plus 0.
The second is saying, if the length is greater than 1, return the first number plus the second number, then, if the length is greater than 0, return the first number, else return 0.
return (nums.length>0?nums[0]:0)+>0 covers the nums[0] part of the >1 case result(nums.leng th>1?nums[ 1]:0);//// >0 should cover >1 case already in the front right???
return nums.length>1?nums[0]+numsreturn nums.length>1?([1]:nums.l ength>0?nu ms[0]:0;
public int sum2(int[] nums) {
return (nums.length==0?0:nums[0])+(nums.length>1?nums[1]:0);
}
public int sum2(int[] nums) {
return (nums.length==0?0:nums[0])+(nums.length>=1?nums[1]:0);
}
return nums.length==0?0:nums.length==1?nums[0]:nums[0]+nums[1;]
return nums.length<1?0:nums[0]+(nums.length<2?0:nums[1]);
where can i see more nested ternary related examples to understand above lines of codes
return (nums.length==0?0:nums[0])+(nums.length>1?nums[1]:0);When nums.length == 1, nums.length==0 is false, so the first term becomes nums[0]
in above working solution where we are taking care when nums.length is 1 case?
public int sum2(int[] nums) {how this solution works when nums.length is 1. In this case it should return
if (nums.length ==0){return 0;}
if(nums.length==1){return nums[0];}
return nums[0]+nums[1];
}
//return nums.length==0?0:nums.length==1?nums[0]:nums[0]+nums[1];
return
nums.length==0
?
0
:
[b] ([/b]
nums.length==1
?
nums[0]
:
(nums[0]+nums[1])
[b] )[/b]
;
public int sum2(int[] nums) {
int numsSum[]=new int[4];
if(nums.length>=2)
return nums[0]+nums[1];
else (nums.length==1)
return nums[0];
}
why i got below error
Compile problems:
Error: else (nums.length==1)
^
Syntax error, insert "AssignmentOperator ArrayInitializer" to complete ArrayInitializerAssignemen
what it means?
please advise