Problem:
Return true if the array contains, somewhere, three increasing adjacent numbers like .... 4, 5, 6, ... or 23, 24, 25.
tripleUp({1, 4, 5, 6, 2}) → true
tripleUp({1, 2, 3}) → true
tripleUp({1, 2, 4}) → false
Solution:
public boolean tripleUp(int[] nums) { boolean result = false; for (int i =0;i < nums.length-2;i++) if ( (nums[i] + 1 == nums[i+1]) && (nums[i+1] + 1 == nums[i+2]) ) result = true; return result; }
If we take {1,2,3,4,5,6,7} then it shows FALSE.
ReplyDeletestatic boolean tripleUp(int[] nums) {
Deletefor(int i=0; i<nums.length-2; i++){
if(nums[i]+1==nums[i+1] && (nums[i+1]+1)==nums[i+2]){
return true;
}
}
return false;
}
public boolean tripleUp(int[] nums) {
ReplyDeletefor(int i = 0; i<nums.length-2;i++){
if ((nums[i+1]==nums[i]+1)&&(nums[i+2]==nums[i]+2)) return true;
}
return false;
}
public boolean tripleUp(int[] nums) {
ReplyDeletefor(int i = 0; i < nums.length - 2; i++) {
if(nums[i] == (nums[i + 1] - 1) &&
nums[i + 1] == (nums[i + 2] - 1)) {
return true;
}
}
return false;
}
public boolean tripleUp(int[] nums) {
ReplyDeleteboolean adjacent = false;
for(int i = 0; i < nums.length - 2; i++) {
if(nums[i+1] - nums[i] == 1 && nums[i+2] - nums[i+1] == 1) {
adjacent = true;
}
}
return (adjacent);
}
public boolean tripleUp(int[] nums) {
ReplyDeletefor(int i=0;i<nums.length;i++){
if((i<nums.length-1&&nums[i+1]==nums[i]+1)&&(i<nums.length-2&&nums[i+2]==nums[i+1]+1))
return true;
}
return false;
}
public boolean tripleUp(int[] nums) {
ReplyDeleteint len = nums.length;
boolean consec = false;
for(int i=0; i<len; i++){
if(i<=len-3 && nums[i+2]-nums[i+1]==1 && nums[i+1]-nums[i]==1){
consec = true;
}
}
return consec;
}
Could you solve this quesstion using Python? Thanks a lot:)
ReplyDeleteWith Java Stream
ReplyDeletepublic static boolean tripleUp(int[] nums) {
return IntStream.range(0, nums.length - 2).anyMatch(i -> nums[i] + 1 == nums[i+1] && nums[i+1] + 1 == nums[i+2]);
}
public boolean tripleUp(int[] nums) {
ReplyDeletefor(int i=0;i<nums.length;i++){
if(i+2<nums.length&&nums[i]+2==nums[i+1]+1&&nums[i]+2==nums[i+2])
return true;
}
return false;
}
public boolean tripleUp(int[] nums) {
ReplyDeleteint p=-1,bp=-1,c=-1;
for(int i=0;i<nums.length;i++){
bp=p;
p=c;
c=nums[i];
if(bp==p-1&&p==c-1){
return true;
}
}
return false;
}