Problem:
We'll say that an element in an array is "alone" if there are values before and after it, and those values are different from it. Return a version of the given array where every instance of the given value which is alone is replaced by whichever value to its left or right is larger.
notAlone({1, 2, 3}, 2) → {1, 3, 3}
notAlone({1, 2, 3, 2, 5, 2}, 2) → {1, 3, 3, 5, 5, 2}
notAlone({3, 4}, 3) → {3, 4}
Solution:
public int[] notAlone(int[] nums, int val) { for (int i= 1;i<nums.length -1;i++) { if (nums[i] == val) if (nums[i-1] != nums[i] && nums[i+1] != nums[i]) if (nums[i+1] > nums[i-1]) nums[i] = nums[i+1]; else if (nums[i+1] < nums[i-1]) nums[i] = nums[i-1]; } return nums;
how to create a class object and how to call its method in main?
ReplyDeletepublic class Y {
Deletepublic int[] notAlone(int[] nums, int val) {
for(int i=0;i0 && nums[i]==val && inums[i]){
nums[i]=nums[i-1];
}
if(nums[i+1]>nums[i]){
nums[i]=nums[i+1];
}
else{
nums[i]=nums[i];
}
}
}
return nums;
}
public static void main(String[] args) {
Y yy=new Y();
int [] nums={1, 1, 1, 2};
yy.notAlone(nums,2);
}
}
01
ReplyDeletepublic int[] notAlone(int[] nums, int val) {
02
for (int i= 1;i nums[i-1]) nums[i] = nums[i+1];
07
else if (nums[i+1] < nums[i-1]) nums[i] = nums[i-1];
08
}
09
return nums;
10
for this above code.
how to create a class object and how to call its method in main?
int len= nums.length;
ReplyDeleteif(len<3) return nums;
for(int i=1; i<len-1;i++) {
if(nums[i]==val && nums[i-1]!=nums[i] && nums[i+1]!=nums[i] ){
int bigger=Math.max(nums[i-1],nums[i+1]);
nums[i]=bigger;
}
}return nums;
public int[] notAlone(int[] nums, int val) {
ReplyDeleteint max = 0;
for(int i = 1; i < nums.length-1; i++){
if(nums[i] == val){
if(nums[i-1] > nums[i+1]){
max = nums[i-1];
} else {
max = nums[i+1];
}
nums[i] = max;
i++;
}
}
return nums;
}
public int[] notAlone(int[] nums, int val) {
ReplyDeletefor (int i = 0; i < nums.length - 1; i++)
{
if (nums[i] == val)
{
if ((i - 1 >= 0 && nums[i - 1] != nums[i]) && nums[i + 1] != nums[i])
{
if (nums[i - 1] > nums[i + 1])
{
nums[i] = nums[i - 1];
}
else
{
nums[i] = nums[i + 1];
}
}
}
}
return nums;
}
public int[] notAlone(int[] nums, int val) {
ReplyDeletefor (int i = 1; i < nums.length - 1; i++) {
if (nums[i] == val) {
nums[i] = Math.max(nums[i-1], nums[i+1]);
i++;
}
}
return nums;
}
close, but will fail if (nums[i-1] == val || nums[i+1] == val)
Deletepublic int[] notAlone(int[] nums, int val) {
for (int i = 1; i < nums.length - 1; ++i) {
if (nums[i] == val && nums[i-1] != val && nums[i+1] != val) {
nums[i] = Math.max(nums[i-1], nums[i+1]);
}
}
return nums;
}
public int[] notAlone(int[] nums, int val) {
ReplyDeletefor(int i=1;inums[i-1])?nums[i+1]:nums[i-1];
}
return nums;
}
for(int i= 1; i<nums.length-1; i++) {
ReplyDeleteif(nums[i] == val) {
if(nums[i-1] != nums[i+1] && nums[i] != nums[i+1] && nums[i] != nums[i-1]) {
nums[i] = Math.max(nums[i-1], nums[i+1]);
}
}
}
return nums;
public int[] notAlone(int[] nums, int val) {
ReplyDeletefor(int i=1;i <nums.length-1;i++) {
if(nums[i]==val && nums[i-1]!=val && nums[i+1]!=val ) {
nums[i]=Math.max(nums[i-1],nums[i+1]);
}
}
return nums;
}
public int[] notAlone(int[] nums, int val) {
ReplyDeleteint max=0;
for(int i=1 ; i<nums.length-1 ; i++){
if(nums[i]==val && (nums[i-1]!=val && nums[i+1]!=val)){
max=Math.max(nums[i-1],nums[i+1]);
nums[i] = max;
}
}
return nums;
}