Open In App

k-th number in the Odd-Even sequence

Last Updated : 22 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given two numbers n and k, find the k-th number in the Odd-Even sequence made of n. The Odd-Even sequence contains first contains all odd numbers from 1 to n then all even numbers in set 1 to n. 
 

Examples :
Input :  n = 5, k = 3
Output : 5
In this example, the Odd-Even  is
{1, 3, 5, 2, 4}. 
The third number in sequence is 5.

 

Naive Approach : 

The first approach is simply make a Odd-Even sequence and then find k-th element in it. 
 

C++




// CPP program to find k-th
// element in the Odd-Even
// sequence.
#include <bits/stdc++.h>
using namespace std;
 
int findK(int n, int k)
{
    vector<long> a;
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.push_back(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.push_back(i);
     
    return (a[k - 1]);
}
 
// Driver code
int main()
{
    long n = 10, k = 3;
    cout << findK(n, k) << endl;
    return 0;
}


Java




// Java program to find k-th
// element in the Odd-Even
// sequence.
import java.util.*;
 
class GFG{
static int findK(int n, int k)
{
    ArrayList<Integer> a = new ArrayList<Integer>(n);
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.add(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.add(i);
     
    return (a.get(k - 1));
}
 
// Driver code
public static void main(String[] args)
{
    int n = 10, k = 3;
    System.out.println(findK(n, k));
}
}
// This code is contributed by mits


Python3




# Python3 code to find
# k-th element in the
# Odd-Even sequence.
 
def findK (n, k ):
    a = list()
     
    # insert all the odd
    # numbers from 1 to n.
    i = 1
    while i < n:
        a.append(i)
        i = i + 2
     
    # insert all the even
    # numbers from 1 to n.
    i = 2
    while i < n:
        a.append(i)
        i = i + 2
         
    return (a[k - 1])
 
# Driver code
n = 10
k = 3
print(findK(n, k))
 
# This code is contributed
# by "Sharad_Bhardwaj".


C#




// C# program to find k-th
// element in the Odd-Even
// sequence.
using System;
using System.Collections;
 
class GFG{
static int findK(int n, int k)
{
    ArrayList a = new ArrayList(n);
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.Add(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.Add(i);
     
    return (int)(a[k - 1]);
}
 
// Driver code
static void Main()
{
    int n = 10, k = 3;
    Console.WriteLine(findK(n, k));
}
}
// This code is contributed by mits


PHP




<?php
// PHP program to find k-th
// element in the Odd-Even
// sequence.
 
function findK($n, $k)
{
    $a;
    $index = 0;
     
    // insert all the odd
    // numbers from 1 to n.
    for ($i = 1; $i < $n; $i++)
        if ($i % 2 == 1)
            $a[$index++] = $i;
     
    // insert all the even
    // numbers from 1 to n.
    for ($i = 1; $i < $n; $i++)
        if ($i % 2 == 0)
            $a[$index++] = $i;
     
    return ($a[$k - 1]);
}
 
// Driver code
$n = 10;
$k = 3;
echo findK($n, $k);
 
// This code is contributed by mits.
?>


Javascript




<script>
    // Javascript program to find k-th
    // element in the Odd-Even
    // sequence.
     
    function findK(n, k)
    {
        let a = [];
 
        // insert all the odd
        // numbers from 1 to n.
        for (let i = 1; i < n; i++)
            if (i % 2 == 1)
                a.push(i);
 
        // insert all the even
        // numbers from 1 to n.
        for (let i = 1; i < n; i++)
            if (i % 2 == 0)
                a.push(i);
 
        return (a[k - 1]);
    }
     
    let n = 10, k = 3;
    document.write(findK(n, k));
     
    // This code is contributed by mukesh07.
</script>


Output : 
 

 5

Time complexity: O(n), for an O(1) approach read the approach discussed here.

Space Complexity: O(n) since using an auxiliary array
 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads