Problem:
Given an array of ints, return true if every 2 that appears in the array is next to another 2.
twoTwo({4, 2, 2, 3}) → true
twoTwo({2, 2, 4}) → true
twoTwo({2, 2, 4, 2}) → false
Solution:
public boolean twoTwo(int[] nums) { int index =0; for (int i=0; i<(nums.length); i++) { if(nums[i]==2) { i++; if(!(i<(nums.length)) || nums[i] !=2) return false; while(i<nums.length && nums[i] ==2) i++; } } return true; }
static boolean twoTwo(int[] nums) {
ReplyDeleteint len = nums.length;
boolean result = true;
boolean found = false;
for(int i=0; i<len; i++){
if(nums[i] !=2) found = false;
if(nums[i] ==2 && found) result = true;
if(nums[i] ==2 && !found){
found = true;
result = false;
}
}
return result;
}
public boolean twoTwo(int[] nums) {
ReplyDeletefor (int i=0; i= 1 && nums[i-1] == 2)
continue;
if (i < (nums.length-1) && nums[i+1] == 2)
continue;
return false;
}
return true;
public boolean twoTwo(int[] nums) {
ReplyDeleteif(nums.length == 0) {
return true;
}
if(nums.length == 1 && nums[0] == 2)
return false;
if(nums[nums.length -1] == 2 && nums[nums.length - 2] != 2)
return false;
for(int i = 1; i < nums.length - 1; i++) {
if(nums[i] == 2) {
if(nums[i-1] != 2 && nums[i+1] != 2) {
return false;
}
}
}
return true;
}
that is a great solution
Deletepublic boolean twoTwo(int[] nums) {
ReplyDeleteif (nums.length == 1 && nums[0] == 2)
{
return false;
}
for (int i = 0; i < nums.length - 1; i++)
{
if ((nums[i] == 2 && nums[i + 1] != 2) || (i == nums.length - 2 && nums[i] != 2 && nums[i + 1] == 2))
{
return false;
}
else if (nums[i] == 2 && nums[i + 1] == 2)
{
i++;
}
}
return true;
}
public boolean twoTwo(int[] nums) {
ReplyDeleteint flag=0;
int flag1=0;
for(int i=0;inums.length-1 )
{
break;
}
else
{
if(nums[i+1]==2)
{
flag=1;
}
}
}
else
{
if(i+1> nums.length-1)
{
break;
}
else
{
if(nums[i+1]==2)
{
flag=0;
}
}
}
}
if(flag==1)
return true;
else if(flag1==0)
return true;
else
return false;
}
public boolean twoTwo(int[] nums)
ReplyDelete{
if(nums.length == 1 && nums[0] == 2)
return false;
for(int i = 0; i<nums.length ; i++)
{
if(nums[i] == 2)
{
if(i+1 < nums.length && nums[i+1] != 2)
{
return false;
}
if(i == nums.length-1 && nums[i-1] != 2 ) // only for last element
{
return false;
}
else
{
i += 1;
}
}
}
return true;
}
public boolean twoTwo(int[] nums) {
ReplyDeleteint len = nums.length;
for (int i = 0; i < len; i++) {
if (nums[i] == 2) {
i++;
if (i == len || nums[i] != 2) {
return false;
} else {
i++;
}
}
}
return true;
}
MORE EASY TO UNDERISTAND
ReplyDeletepublic boolean twoTwo(int[] nums) {
int count=0;
for(int i=0;i1||count==0;
}