这是一个面试问题.您需要设计一个包含整数值的堆栈,以便getMinimum()函数返回堆栈中的最小元素.
例如:考虑下面的例子
case #1 5 --> TOP 1 4 6 2 When getMinimum() is called it should return 1, which is the minimum element in the stack. case #2 stack.pop() stack.pop() Note: Both 5 and 1 are poped out of the stack. So after this, the stack looks like, 4 --> TOP 6 2 When getMinimum() is called is should return 2 which is the minimum in the stack.
制约性:
这是我的一个面试问题.给定N个元素的数组,其中元素恰好出现N/2次,其余N/2个元素是唯一的.你如何找到运行时间更好的元素?
请记住元素没有排序,你可以假设N是偶数.例如,
input array [] = { 10, 2, 3, 10, 1, 4, 10, 5, 10, 10 }
Run Code Online (Sandbox Code Playgroud)
所以这里10次出现5次,即N/2次.
我知道O(n)运行时的解决方案.但仍期待通过O(log n)了解更好的解决方案.
这是我最近的面试问题之一.我想知道其他人对这个问题的看法.
题:
您将获得一个结构,其中包含两个元素(int部门和string名称)的员工详细信息.
struct Employee
{
string Name;
int Dept;
}
Run Code Online (Sandbox Code Playgroud)
您将获得N员工的详细信息,其中N/2名员工Dept == 0和N/2名员工Dept == 1,按任意顺序排列.您需要根据其Dept值来对员工详细信息进行排序,并且应该是稳定的,即应保持原始记录中的1和0的顺序.
例如,给出以下示例数据:
Name Dept X1 0 X2 1 X3 0 X4 1 X5 0
排序后的结果应该是:
Name Dept X2 1 X4 1 X1 0 X3 0 X5 0
算法应该是稳定的,时间复杂度应该是O(N),其他变量具有恒定的空间(这意味着应该就地进行排序).
四个人必须在晚上过桥.任何穿过一个或两个男人的派对都必须随身携带手电筒.手电筒必须来回走动; 它不能被抛出等等.每个人都以不同的速度行走.一分钟需要1分钟,另外2分钟,另外5分钟,最后10分钟.如果两个男人交叉在一起,他们必须以较慢的男人的步伐走路.没有技巧 - 男人都是从同一侧开始,手电筒不能长距离照射,没有人可以携带,等等.
问题是他们能够最快地获得的是什么.我基本上是在寻找一些针对这类问题的通用方法.我的朋友告诉我,这可以通过Fibonacci系列解决,但解决方案并不适用于所有人.
请注意,这不是家庭作业.
在二分搜索中,我们有两个比较,一个用于大于,另一个用于小于,否则是中间值.您将如何优化以便我们只需要检查一次?
bool binSearch(int array[], int key, int left, int right)
{
mid = left + (right-left)/2;
if (key < array[mid])
return binSearch(array, key, left, mid-1);
else if (key > array[mid])
return binSearch(array, key, mid+1, right);
else if (key == array[mid])
return TRUE; // Found
return FALSE; // Not Found
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的功能模板:
#include <iostream>
using namespace std;
template <class T>
T GetMax (T a, T b) {
T result;
result = (a > b) ? a : b;
return (result);
}
int main () {
cout << GetMax<int>(5, 6) << endl;
cout << GetMax<long>(10, 5) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的例子将生成2个函数模板实例,一个用于int,另一个用于long.是否有任何g ++选项可以查看函数模板实例化?
这是我的设计的问题描述.有一个类A(Singleton)可以创建和维护B类的对象.但是有这样的场景,如果某个特定条件出现在B类的对象中,它必须创建另一个B类对象.但是我需要这个创建对象由A类完成.
class B;
class A {
private:
A();
class A *ptr;
public:
A & GetAInstance()
{
if (!ptr)
ptr = new A;
return ptr;
}
void CreateBInstances(std::string name)
{
map[name] = new B(name);
}
};
Class B {
public:
B(std::string name) { }
public:
void checkCondition()
{
if (condition == true)
{
// So here the contidition is hit, I want to create
// another object of class B, but I want to intimate
// class A to do this …Run Code Online (Sandbox Code Playgroud)