Java > Array-1 > unlucky1 (CodingBat Solution)

Problem:

We'll say that a 1 immediately followed by a 3 in an array is an "unlucky" 1. Return true if the given array contains an unlucky 1 in the first 2 or last 2 positions in the array.

unlucky1({1, 3, 4, 5}) → true
unlucky1({2, 1, 3, 4, 5}) → true
unlucky1({1, 1, 1}) → false


Solution:

public boolean unlucky1(int[] nums) {
if (nums.length ==0 || nums.length ==1)
return false;
else if ((nums[0] ==1 && nums[1] ==3) || 
         (nums[1] ==1 && nums[2] ==3) || 
         (nums[nums.length -1] ==3 && 
          nums[nums.length -2] ==1))
return true;
else
return false;
}


10 comments :

  1. This solution will throw a java.lang.ArrayIndexOutOfBoundsException if nums.length = 2 and the second element of nums is 1.
    For instance, if nums = {1,1} an exception will be thrown.

    ReplyDelete
    Replies
    1. Try this:

      public boolean unlucky1(int[] nums){return((nums.length>1)&&((nums[0]==1&&nums[1]==3)||(nums.length>2&&(nums[1]==1&&nums[2]==3)||(nums[nums.length-2]==1&&nums[nums.length-1]==3)))?true:false);}

      Delete
  2. //Here is my solution it work
    public static boolean unlucky1(int[] nums) {
    for (int i = 0; i < nums.length-1; i++) {

    if(nums[0] == 1 && nums[1]== 3 || nums[nums.length-2] == 1 && nums[nums.length-1] == 3) {
    return true;
    }
    if(nums[i] ==1 && nums[i+1]==3)return true;
    if(nums[nums.length-2] == 3 && nums[nums.length-1] == 1)return false;
    }


    return false;
    }

    ReplyDelete
  3. public boolean unlucky1(int[] nums) {
    if (nums.length > 1)
    return ((nums[0] == 1 && nums[1] == 3) ||
    (nums[1] == 1 && nums[2] == 3)||
    (nums[nums.length-2] == 1 && nums[nums.length-1] == 3));
    else return false;
    }

    ReplyDelete
  4. (nums.length < 2) is a much shorter and efficient substitute for (nums.length ==0 || nums.length ==1).

    This is my solution [probably not the best :)]:

    public boolean unlucky1(int[] nums) {
    if(nums.length < 2){
    return false;
    }else if(nums[0] == 1 && nums[1] == 3){
    return true;
    }else if(nums[1] == 1 && nums[2] == 3){
    return true;
    }else if(nums[nums.length - 2] == 1 && nums[nums.length - 1] == 3){
    return true;
    }else{
    return false;
    }
    }

    ReplyDelete
  5. Unlike everything else on this page, this is an actual working solution:

    public boolean unlucky1(int[] nums) {
    boolean o = false;
    if (nums.length == 2) {
    if (nums[0] == 1 && nums[1] == 3) {
    o = true;
    }
    }
    if (nums.length > 2) {
    if ((nums[0] == 1 && nums[1] == 3) || (nums[1] == 1 && nums[2] == 3)) {
    o = true;
    }
    if ((nums[nums.length - 2] == 1 && nums[nums.length - 1] == 3)) {
    o = true;
    }
    }
    return(o);
    }

    ReplyDelete
  6. EASIEST AND BEST SOLUTION:

    public boolean unlucky1(int[] nums) {

    if(nums.length >= 2){
    if( nums[0] == 1 && nums[1] == 3 || nums[1] == 1 && nums[2] == 3 || nums[nums.length-2] == 1 && nums[nums.length-1] == 3 ){
    return true;
    }
    }
    return false;

    }

    ReplyDelete

  7. My goal was to write this using a one liner I know it doesn't necessarily read well.
    public boolean unlucky1(int[] nums) {
    return nums.length == 2 && nums[0] == 1 && nums[1] == 3 || nums.length > 2 && nums[0] == 1 && nums[1] == 3 || nums.length > 2 && nums[1] == 1 && nums[2] == 3 || nums.length > 2 && nums[nums.length-2] == 1 && nums[nums.length-1] == 3 ? true:false;
    }

    ReplyDelete
  8. One Liner
    public boolean unlucky1(int[] nums) {

    return (nums.length > 1 && ((nums[0] == 1 && nums[1] == 3) || (nums[nums.length - 2] == 1 && nums[nums.length - 1] == 3))) || (nums.length > 2 && nums[1] == 1 && nums[2] == 3);

    }

    ReplyDelete

Follow Me

If you like our content, feel free to follow me to stay updated.

Subscribe

Enter your email address:

We hate spam as much as you do.

Upload Material

Got an exam, project, tutorial video, exercise, solutions, unsolved problem, question, solution manual? We are open to any coding material. Why not upload?

Upload

Copyright © 2012 - 2014 Java Problems  --  About  --  Attribution  --  Privacy Policy  --  Terms of Use  --  Contact