A special site for solving fun programming problems and challenges, interested in computer science, programming, basics, data structure and algorithms

 


Given two non-negative integers low and high. Return the count of odd numbers between low and high (inclusive).

 

Example 1:

Input: low = 3, high = 7
Output: 3
Explanation: The odd numbers between 3 and 7 are [3,5,7].

Example 2:

Input: low = 8, high = 10
Output: 1
Explanation: The odd numbers between 8 and 10 are [9].

 

Constraints:

  • 0 <= low <= high <= 10^9


solution<1>:
class Solution {
public:
    int countOdds(int low, int high) 
      {
           if(low%2==1||high%2==1)
               return 1+(high-low)/2;
           else
               return (high-low)/2;
       }
};
solution<2>:
class Solution {
public:
    int countOdds(int low, int high) {
       return (high+1)/2-(low/2);
    }
};
solution<3>:
note: this solution will give you Time Limit Exceeded but it is correct.
#include<iostream>
using namespace std;

class Solution {
public:
	int countOdds(int low, int high) {
		int count{0};
		for (int i = low; i <= high; i++)
		{
			if (i % 2 == 1)
				count++;
		}
		return count;
	}
};

int main()
{
	int high, low;
	cin >> low >> high;
	Solution s;
	int result = s.countOdds(low, high);
	cout << result << "\n";
	return 0;
}

No comments:

Post a Comment