Problem:
Return the sum of the numbers in the array, returning 0 for an empty array. Except the number 13 is very unlucky, so it does not count and numbers that come immediately after a 13 also do not count.
sum13({1, 2, 2, 1}) → 6
sum13({1, 1}) → 2
sum13({1, 2, 2, 1, 13}) → 6
Solution:
public int sum13(int[] nums) { int sum = 0; for (int i = 0; i < nums.length; i++) { if(nums[i] != 13) { sum += nums[i]; if(i>0 && nums[i-1] == 13) sum -= nums[i]; } } return sum; }
My solution:
ReplyDeletepublic int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 13 || i > 0 && nums[i - 1] == 13) {
continue;
} else {
sum += nums[i];
}
}
return sum;
}
Another way:
ReplyDeletepublic int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 13) {
i++;
continue;
}
sum += nums[i];
}
return sum;
}
Another way:
ReplyDeletepublic int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums.length>0) {
if (nums[i] < 13 || nums[i] > 13) sum += nums[i];
else i++;
}
}
return sum;
}
This is my solution.
ReplyDeletepublic int sum13(int[] nums) {
if(nums.length==0) return 0;
int i=0;
int count=0;
while(i<nums.length) {
if(nums[i]!=13 ){
count+=nums[i];
}
else {
if(nums[i]==13 && i+1<nums.length) {
nums[i+1]=0;
}
}
i++;
}
return count;
}
int n=0;
ReplyDeletefor(int i=0;i<nums.length;i++){
if(nums[i]==13){
i++;
continue;
}
n+=nums[i];
}
return n;
public int sum13(int[] nums) {
ReplyDeleteint sum = 0;
for (int i=0; i<nums.length; i++) {
if (nums[i]==13) i++;
else sum+=nums[i];
}
return sum;
}
public int sum13(int[] nums) {
ReplyDeleteint sum=0;
for(int i=0;i=13)
return sum-13;
else
return sum;
}
public int sum13(int[] nums) {
Deleteint sum=0;
for(int i=0;i<=nums.length-1;i++) {
sum+=nums[i];
if(nums[i]==13) {
sum=sum-nums[i];
i=i+1;
}
}
return sum;
}
public int sum13(int[] nums) {
ReplyDeleteint sum = 0;
if(nums.length == 0){
return 0;
}
for(int i = 0; i < nums.length; i ++){
if (nums[i] < 13 || nums[i] > 13){
sum += nums[i];
} else i++;
}
return sum;
}
public int sum13(int[] nums)
ReplyDelete{
int value = 0;
if(nums.length < 1)
{
return 0;
}
for(int i = 0; i < nums.length; i++)
{
if(nums[i] == 13) i++;
else value = value + nums[i];
}
return value;
}
I am getting out of bound exception when array length is 5 or higher. public int sum13(int[] nums) {
ReplyDeleteint sum = 0;
for (int i=0;i<nums.length;i++) {
if (nums.length <= 0) {
return(0);
}
if(nums[i]!=13){
sum+=nums[i];
}
else {
sum -= nums[i] - nums[i+1];
}
}return (sum);
}