Facebook面试题,从数组中删除这个指定的值的所有出现
来源:互联网 发布:入门级显示器知乎 编辑:程序博客网 时间:2024/05/16 16:00
Facebook面试题 这是一个编程题,动手做做才会有体会。给一个数组和一个值,从数组中删除这个指定的值的所有出现,并且返回新的数组的长度。size_t remove_elem(T* array, size_t len, T elem) {}。
题目地址 新浪微博 @陈利人 http://weibo.com/1915548291/z24j5a6VP
#include "gtest/gtest.h" template <typename T, size_t N> char (&ArraySizeHelper(const T (&array)[N]))[N]; #define arraysize(array) (sizeof(ArraySizeHelper(array))) //Caller's responsibility to pass appropriate arguments.template<typename T>size_t RemoveElement(T elements[],const size_t size, const T key){size_t where_to_place= 0;for(size_t i=0; i< size; i++)if(elements[i]!= key)elements[where_to_place++]= elements[i];return where_to_place;}template<typename T>bool CompareNativeArray(const T a[],const T b[],const size_t size){for(size_t i= 0; i<size; i++)if(a[i]!= b[i])return false;return true;}TEST(RemoveElementTest, Case1) {int input[]= {1,1,2,3,4,1,8,6,1,1};int result[]= {2,3,4,8,6};int new_size= RemoveElement<int>(input, arraysize(input), 1);ASSERT_EQ(new_size, arraysize(result));ASSERT_TRUE(CompareNativeArray<int>(input, result,new_size));}TEST(RemoveElementTest, Case2) {int input[]= {1,1,1,1,1,1,1,1,1};int new_size= RemoveElement<int>(input, arraysize(input), 1);ASSERT_EQ(new_size, 0);}TEST(RemoveElementTest, Case3) {int input[]= {1,1,1,1,1,1,2,2,2,2,2,2};int result[]= {2,2,2,2,2,2};int new_size= RemoveElement<int>(input, arraysize(input), 1);ASSERT_EQ(new_size, arraysize(result));ASSERT_TRUE(CompareNativeArray<int>(input, result,new_size));}TEST(RemoveElementTest, Case4) {int input[]= {1,2,1,2,1,2};int result[]= {2,2,2};int new_size= RemoveElement<int>(input, arraysize(input), 1);ASSERT_EQ(new_size, arraysize(result));ASSERT_TRUE(CompareNativeArray<int>(input, result,new_size));}int main(int argc, char* argv[]){testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();}
- Facebook面试题,从数组中删除这个指定的值的所有出现
- 从数组中删除这个指定的值
- 面试题整理-从数组中删除指定元素
- 从数组中删除指定的值
- 面试题:编写函数找到数组中所有和为指定值的整数对
- javascript 删除数组中所有指定的值
- 从数组中删除指定的元素
- 剑指Offer----面试题35:扩展----删除字符串中所有重复出现的字符 & 变位词
- 剑指offer 面试题35扩展:删除字符串中所有重复出现的字符 (C++版)
- JavaScript从数组中删除指定值元素的方法
- JavaScript从数组中删除指定值元素的方法
- JavaScript从数组中删除指定值元素的方法
- JavaScript从数组中删除指定值元素的方法
- 在一个字符串中删除指定的字符 & 删除字符串中所有出现在另一个字符数组中的字符
- 剑指Offer----面试题35:扩展----第一个字符串中删除第二个字符串中出现过的所有字符
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- javascript 从数组中删除指定值(不是指定位置)的元素
- hdu 3460 Ancient Printer
- CF 237A (Cash)
- Booki 生成pdf文件时遇到的404错误
- CF 237C (质数区间)
- AE CS4安装后 147 20错误的解决方法
- Facebook面试题,从数组中删除这个指定的值的所有出现
- 对九个超级程序员的采访
- Git日志格式、颜色设置
- Liferay Message Bus
- Java中Map的便利方法
- 一些重要的算法
- 简单游戏场景用户模拟
- Liferay Schedule a job
- 28个Unix/Linux的命令行神器