笔试题
荆赤潮
这个作者很懒,什么都没留下…
展开
-
【笔试练习题】leetcode 416. Partition Equal Subset Sum
题目:判断一个数组是否能被拆分成两个子数组,使得这两个子数组各自的数字和相等。方案:回溯法问题:很容易超时。如果从小到大排序会超时,只有从大到小排序才可以。class Solution {public: bool canPartition(vector<int>& nums) { int sum = 0; for(int ...原创 2019-06-05 10:04:53 · 487 阅读 · 0 评论 -
【笔试练习题】C++正则表达式
leetcode 10class Solution {public: bool isMatch(string s, string p) { // 使用正则表达式直接求解 if(s=="") { if(p==""||isMatchEmpty(p)) { re...原创 2019-06-27 17:23:29 · 730 阅读 · 0 评论 -
【笔试练习题】求组合数
#include <iostream>#include <string>#include <algorithm>#define BIG 1000000000using namespace std; typedef long long ll; vector<char> res;int ok; // 求全排列C(n,m),如果越...转载 2019-06-24 19:45:25 · 587 阅读 · 0 评论 -
【面试练习题】C++ 使用多线程实现交替打印两个数组 + PV操作
互斥锁的版本:#include <string>#include <thread>#include <mutex>#include <iostream>using namespace std;std::mutex data_mutex;int flag = 0;void printA(int* a, int size) { ...原创 2019-07-08 23:01:36 · 2289 阅读 · 0 评论 -
【面试练习题】进程间通信方式的区别
【1】管道 亲缘关系(父子、兄弟) 单向通信,如果需要双工通信,则需要建立两个管道 管道缓冲区大小受限制(由操作系统内核设定) 管道传输的是无格式的字节流,需要输入输出双方事先约定好数据的格式 是一个只存在在内存中的文件 【2】有名管道(又叫FIFO) 有名 +非亲缘 可以一个服务器接收多个客户端的管道。比如客户先把自己的进...原创 2019-07-09 10:42:17 · 822 阅读 · 0 评论 -
【面试练习题】线程相关:来自《后台开发技术应用实践》 + 其他
【1】线程的状态:默认为非绑定、非分离、1MB大小的堆栈(ubuntu 2.6的内核线程栈的默认大小为8M),与父进程具有同样的优先级【2】等待线程——pthread_join 功能:阻塞等待,知道子线程结束运行,然后得到子线程退出码,回收子线程的资源。 如果不使用pthread_join回收线程,可能会导致类似僵尸进程一样的问题,导致内存泄漏。 【3】线程分离...原创 2019-07-09 10:58:01 · 532 阅读 · 0 评论 -
【面试题】不用递归实现二叉树的遍历(使用栈)
源代码:https://github.com/cr19941016/preOrderTree实现环境:ubuntu16.04 + cmake3.5.1递归的本质就是循环和栈void TreeHandler::myPreOrder(TreeNode* root){ // 非递归先序遍历二叉树git cout << "mypre: "; if(!root) ...原创 2019-04-23 11:03:31 · 3220 阅读 · 0 评论 -
【笔试练习题】手写LRU算法(leetcode 146)
class LRUCache {public: LRUCache(int capacity) : _capacity(capacity) {} int get(int key) { if(km_all.count(key) == 0 || !(km_all[key].is_inCache)){ return -1; ...原创 2019-07-13 13:47:33 · 1291 阅读 · 0 评论 -
从10万个数据中找最大的10个数
海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)https://blog.csdn.net/zyq522376829/article/details/47686867但是里面说的有问题,建堆的复杂度是O(m),总的复杂度是O(nlogm)从10万个数中找10个最大的数https://blog.csdn.net/sky_100/article/detai...转载 2019-06-30 22:23:25 · 5023 阅读 · 0 评论 -
【笔试练习题】寻找下一个字典序
leetcode第31题解法一(C++ STL函数):class Solution {public: void nextPermutation(vector<int>& nums) { next_permutation(nums.begin(), nums.end()); return ; }};...原创 2019-07-07 12:25:24 · 714 阅读 · 0 评论 -
【面试练习题】单例模式
饿汉式,基本版#include <iostream>using namespace std;class Single {private: Single() {} // 构造函数私有 Single(const Single &) {}; // 拷贝构造函数私有 Single& operator=(const Single&) {}; // 赋值...转载 2019-07-12 12:48:57 · 604 阅读 · 0 评论 -
关于输入输出流迭代器的使用小技巧
这种输出方式可骚气了:#include <vector>#include <set>#include <list>#include <map> // map不支持直接vector迭代器转换#include <unordered_set> #include <iostream> // std::cin, ...原创 2019-07-21 12:02:48 · 596 阅读 · 0 评论 -
C++中的设计模式整理
最近在看《Effective C++ 的55条建议》和C++源码剖析,把上面提到设计模式在这里做个记录,以备面试之需。之前的设计模式总结:设计模式学习笔记(一)(策略、观察者、装饰者、工厂)设计模式学习笔记(二)(单例、命令、适配器、外观、模板方法)设计模式学习笔记(三)(迭代器、组合、状态、代理、复合)【1】《Effective C++》条款35,用Non-Virtua...原创 2019-07-21 17:36:29 · 610 阅读 · 0 评论 -
【笔试练习题】leetcode前100道题里面的hard题解法(更新到第45题)
第4题(2个排序数组的中位数)找到两个已排序数组的中位数(https://leetcode.com/problems/median-of-two-sorted-arrays/)解法一:合并列表,再排序,时间复杂度为O(n+m);解法二:① 在nums1和nums2中各找到一个数,保证合并之后的数组中nums1[k_1]与nums2[k_2]相邻,且nums[k_1] < ...原创 2019-07-02 15:26:07 · 894 阅读 · 0 评论 -
学生各门课程成绩统计MySQL语句大全(面试题)
题目参照:https://www.cnblogs.com/lsgcoder101/p/6011059.html启动数据库服务(windows)netstartmysql登录数据库mysql -uroot -p# 创建和选择数据库create database dbo;use dbo;# 创建数据表create table stuscore...原创 2019-06-05 10:17:16 · 1750 阅读 · 0 评论 -
【笔试练习题】大数相加、大数相乘
大数相加:#include <iostream>#include <vector>#include <string>using namespace std;string add(string &a,string &b){ if(a.size() < b.size()) swap(a, b); ...原创 2019-05-30 22:17:26 · 652 阅读 · 0 评论 -
【笔试练习题】质数因子
题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为22335)最后一个数后面也要有空格。代码(复杂度可以优化到sqrt(n)):链接:https://www.nowcoder.com/questionTerminal/196534628ca6490ebce2e336b47b3607来源:牛客网#include <io...转载 2019-05-31 10:47:36 · 549 阅读 · 0 评论 -
【笔试练习题】背包问题
题目描述:有若干瓶饮料,每种饮料只有一瓶,每种饮料的打分不同,价格也不同。你的手里有买饮料的总金额,要求买到的饮料的打分总和最高。输入:第一行是一个正整数,总金额(不大于1000);第二行是n个正整数,代表饮料单价(n不大于100);第三行是n个正整数,代表饮料的打分。输出:最高总分解析:这是经典的背包问题。背包容量——总金额;物品重量——单价;物品价值——热度值。#...原创 2019-06-05 15:29:28 · 1009 阅读 · 0 评论 -
【笔试练习题】排序算法
测试用的IDE是牛客网:https://www.nowcoder.com/questionTerminal/508f66c6c93d4191ab25151066cb50ef【1】快速排序#include <vector>#include <random>#include <algorithm>#include <iostream>u...原创 2019-06-12 22:35:59 · 612 阅读 · 0 评论 -
【笔试练习题】leetcode127. Word Ladder(广度优先遍历)
这是leetcode上第127题。给出原单词和目标单词和一个字典,在字典中找到过渡单词,使得原单词可以变为目标单词。要求:一次只变一个字母。输出为:最短变化路径的长度。class Solution {public: int ladderLength(string beginWord, string endWord, vector<string>& wor...原创 2019-06-04 11:28:03 · 770 阅读 · 0 评论 -
【笔试练习题】(动态规划)leetcode 115 Distinct Subsequences + 97. Interleaving String
115.Distinct Subsequences题目描述:https://leetcode.com/problems/distinct-subsequences/即判断一个字符串S可以匹配多少个子串T。例子1:Input: S = "rabbbit", T = "rabbit"Output: 3Explanation:As shown below, there are...原创 2019-06-20 19:06:50 · 523 阅读 · 0 评论 -
【笔试练习题】局部链表反转
将链表的一部分(from~to)反转。#include <iostream>#include <vector>#include <algorithm>using namespace std;class node{public: node(int x):val(x), next(NULL){} ~node(); int val; node...原创 2019-06-04 21:41:28 · 704 阅读 · 0 评论 -
【笔试练习题】二分查找找到最接近并小于val的元素
// 二分查找找到最接近并小于val的, 返回标号, start指向第一个元素,end指向最后一个元素,如果全部比val大, 就返回-1 int findFloor(int val, vector<int> &v, int start, int end){ if(start > end){ return start - 1...原创 2019-06-17 14:49:05 · 939 阅读 · 0 评论 -
【笔试练习题】字符串匹配算法KMP
一句话总结:空间换时间,用一个next数组保存不匹配时下一次开始比较时两个字符串指针的位置;next[ i ]中保存的是前i个字符后缀与前缀相同的个数。参考资料:【1】一个将KMP的视频,很好理解,而且很短,只有十来分钟。https://www.bilibili.com/video/av3246487?from=search&seid=18035591679131870458...原创 2019-06-12 10:09:00 · 791 阅读 · 0 评论 -
【笔试练习题】shell * 字符串匹配
题目:https://www.nowcoder.com/questionTerminal/bab19e5b95b54744aa824e0d7be51487动态规划,内存超限:#include <vector>#include <string>#include <iostream>#include <regex>using names...原创 2019-07-01 17:15:53 · 782 阅读 · 0 评论 -
【笔试练习题】输入二进制字符串,输出里面包含的1的个数
解法一:用bitset头文件:<bitset>整数、字符串和布尔数组都可以直接初始化bitset,也可以直接cin.参考资料:https://www.cnblogs.com/RabbitHu/p/bitset.htmlbitset.count() 直接返回里面有多少个1.解法二:variable precision swar算法(在redis里面看到的,一次...原创 2019-06-22 21:02:39 · 860 阅读 · 0 评论 -
【笔试练习题】双端放石子排序
2017百度春招笔试题里面有一题是这样的:度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置。问最少操作多少次可以使得数组从小到大有序?这篇博客里面提供了解法:https://blog.csdn.net/weixin_39530880/article/details/823157092019...原创 2019-09-17 19:04:30 · 1413 阅读 · 0 评论