哈希:CN97_出现次数的TOPK问题

题目描述:给定String类型的数组strArr,再给定整数k,请严格按照排名顺序打印 出次数前k名的字符串。[要求]如果strArr长度为N,时间复杂度请达到O(N \log K)O(NlogK)输出K行,每行有一个字符串和一个整数(字符串表示)。你需要按照出现出现次数由大到小输出,若出现次数相同时字符串字典序较小的优先输出代码:#include "stdafx.h"#include <pair>#include <queue>#includ.
分类: 其他 发布时间: 03-05 09:23 阅读次数: 0

NC70:单链表的选择排序

给定一个无序单链表,实现单链表的选择排序(按升序排序)。输入:[1,3,2,4,5]输出:{1,2,3,4,5}什么是选择排序?我实现的代码: //数据自测可以通过,答案不通过,超时???? ListNode* helper(ListNode* head) { if(head==nullptr||head->next==nullptr) return head; ListNode* p=null
分类: 其他 发布时间: 03-05 09:22 阅读次数: 0

动态规划:计算字符串相似度

题目描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1修改一个字符,如把“a”替换为“b”。2增加一个字符,如把“abdd”变为“aebdd”。3删除一个字符,如把“travelling”变为“traveling”。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加和减少一个“g”的方式来达到目的。上面的两种方案,都只需要一次操作。把这个操作所需要的次数定义为两个字符串的距...
分类: 其他 发布时间: 03-05 09:22 阅读次数: 0

动态规划:NC126_换钱最少货币数

目录1.题目介绍2.01背包3.完全背包4.本题解法5.参考文献1.题目介绍此题是一个完全背包问题,是一个经典的动态规划问题,想要理解完全背包的状态转移过程,首先需要理解01背包。所以,下面先介绍01背包和完全背包。2.01背包3.完全背包4.本题解法5.参考文献算法萌新如何学好动态规划(3)动态规划之背包问题系列...
分类: 其他 发布时间: 03-05 09:22 阅读次数: 0

动态规划:NC116_把数字翻译成字符串

目录题目描述:题解:类似题目比较参考文献:题目描述:题解:动态规划状态转移方程:如果c(i-1,i)==10或20,dp[i]=dp[i-2]如果11<=c(i-1,i)<=19,21<=c(i-1,i)<=26时,dp[i]=dp[i-1]+dp[i-2]其他,dp[i]=dp[i-1]其中,dp(i) 表示数字从左往右第 i 个的翻译种数,c(i-1, i) 表示数字从左往右第 i - 1 和第 i 个字符拼接后的数字(
分类: 其他 发布时间: 03-05 09:22 阅读次数: 0

从《C++ Primer》入手学习C++

写在前面的话,这只是入门学习C++的学习经验。几个重要习题1.写一个复数类或者大整数类,实现基本的加减乘运算,熟悉封装与数据抽象2.写一个字符串类,熟悉内存管理与拷贝控制3.写一个简化的vector<T>类模板,熟悉基本的模板编程,你的这个vector应该能够放入int和std::string等元素类型4.写一个表达式计算器,实现一个节点类的继承体系如图B-1右,体会面向对象编程...
分类: 其他 发布时间: 03-05 09:21 阅读次数: 0

写一个表达式计算器,实现一个节点类的继承体系如图B-1右,体会面向对象编程

更多C++学习经验,从《C++ Primer》入手学习C++写一个表达式计算器,实现一个节点类的继承体系如图B-1右,体会面向对象编程简单版NC137:表达式求值数据结构介绍的逆波兰表达式法https://www.cnblogs.com/lulipro/p/7450886.html#include <iostream>#include <stack>using namespace std;stack<int> nums;stack&lt
分类: 其他 发布时间: 03-05 09:21 阅读次数: 0

goole面试题:有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD

有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。...
分类: 其他 发布时间: 03-05 09:21 阅读次数: 0

关于WaitForMultipleObjects的使用

WaitForMultipleObjectsWaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象DWORD WaitForMultipleObjects(DWORD nCount, // number of handles in the handle arrayCONST HANDLE *lpHandles, // pointer to the object-handle arrayBOOL fWaitAl
分类: 其他 发布时间: 03-05 09:21 阅读次数: 0

华为认证系列课程资源

Big Data-Data Mining 系列课程大数据预备知识-数学基础数据特征选择与降维数据模型评估与优化华为认证企业人工智能开发高级工程师HCIP-AI EI Developer华为认证人工智能工程师HCIA-AIHCIP-AI EI Developer v2.0系列课程...
分类: 其他 发布时间: 03-05 09:20 阅读次数: 0

数据结构总结之图

1.起因为什么要总结图,因为两次华为面试过程中,因为有关图的面试题都回答不上来。问题一:什么是深度优先什么是广度优先,最短路径使用的是深度优先还是广度优先。问题二:什么是拓扑排序?怎么实现?2.图的定义领接矩阵typedef struct { int edges[MaxSize][MaxSize]; int n, e;//n顶点数,e边数 int vex[MaxSize];//节点信息,顶点编号}MGraph;领接表//领接表定义typedef struc.
分类: 其他 发布时间: 03-05 09:20 阅读次数: 0

怎样实现无锁线程同步

参考文献:透过 Linux 内核看无锁编程
分类: 其他 发布时间: 03-05 09:20 阅读次数: 0

写一个字符串类,熟悉内存管理与拷贝控制

编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:class MString{public: MString(const char *str = NULL); // 普通构造函数 MString(const MString &other); // 拷贝构造函数 ~MString(void); // 析构函数 MString & operator =(const MString &other); // 赋值函数 privat
分类: 其他 发布时间: 03-05 09:20 阅读次数: 0

判断链表是否有环,有关单链表环的问题

1.判断给定的链表中是否有环。如果有环则返回true,否则返回false2.对于一个给定的链表,返回环的入口节点,如果没有环,返回null1.判断给定的链表中是否有环。如果有环则返回true,否则返回false解法一:快慢指针法两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next->next。由于fast要比s..
分类: 其他 发布时间: 03-05 09:19 阅读次数: 0

c++11新特性:lambda表达式使用方法,实现原理

提供了一个类似匿名函数的特性,匿名函数就是在需要一个函数,但是又不想费力去命名一个函数的情况下使用的。基本语法:[caputrue](params)opt->ret{body;};capture是捕获列表params是参数表;选填opt:函数选项;可以填mutable,exception,attribute(选填)。mutable:说明lambda表达式内的代码可以修改被捕获的变量,并且可以访问被捕获的non-const方法;exception:说明lambda表达式是否抛出异常
分类: 其他 发布时间: 03-05 09:19 阅读次数: 0

使用过哪些容器,底层如何实现的?

容器包括序列式容器和关联式容器。序列式容器vectorvector初始化默认多大?默认为1,每次扩容在现有大小基础上乘以2。list关联式容器
分类: 其他 发布时间: 03-05 09:19 阅读次数: 0

C++内存回收功能怎么实现?

先看看《Effective C++》对资源管理的讲解:内存回收使用shared_ptr类其他资源回收自定义资源管理类实现一个互斥锁的资源管理类Lock,这里分两个版本实现,Lock1对象禁止复制,Lock2可以允许复制,复制增加资源的引用计数。禁止复制版Lock1引用计数版Lock2...
分类: 其他 发布时间: 03-05 09:18 阅读次数: 0

Linux x86与arm区别

处理器通常是指一台计算机的运算核心和控制核心。英特尔是PC和企业级处理器市场上毋庸置疑的霸主,ARM则是在移动终端市场发展起来的新兴霸主。英特尔专注高性能,为个人用户、企业用户提供出色的性能支持;而ARM则专注低功耗,为手机和平板用户带来超长待机。ARM为了满足数据中心需求:低功耗是ARM处理器的一个优势,但是在面向企业级领域的时侯,其发现并没有64位架构处理器,于是在2012年10月31日ARM推出新款ARMv8架构ARMCortex-A50处理器系列产品,来满足企业级级市场应用的需求。
分类: 其他 发布时间: 03-05 09:18 阅读次数: 0

全局变量与静态变量的区别

分类: 其他 发布时间: 03-05 09:18 阅读次数: 0

如何做到精通QT

qt核心精髓:元对象系统、属性系统、对象模型、对象树、信号槽
分类: 其他 发布时间: 03-05 09:17 阅读次数: 0