- 博客(45)
- 收藏
- 关注
原创 互联网盈利模式
题目:列举几种互联网产品盈利模式及其使用的产品或场景。分析:互联网产品盈利模式有很多种,也有很多分类方法,建议用盈利的工作原理来进行分类,这样比较利于记忆和理解。解答:互联网盈利方式从盈利的工作原理角度来分类,可分为如下图四大类:流量变现模式、佣金分成模式、增值服务模式、收费服务模式,括号中为代表性企业。...
2019-03-04 14:40:42
756
原创 产品笔试之估算题
产品经理估算题各种估算题在产品笔试中非常常见,估算题的出题范围很广,各种场景都可能考察,但答题重点不在于场景,也不在于给出正确的估算结果,而在于其背后合理、完整、严密的思考逻辑和分析方法。供给需求一般来说,市场估算题因为涉及市场,所以必定有供给和需求两个基本思考维度,因此从这两点出发会产生解决问题的两种途径。但对于互联网产品经理这个岗位来说,需求为王,因此选取需求维度作为切入点会比较容易分析...
2019-03-02 22:26:20
2384
原创 产品运营之用户运营
如何做用户运营?用户运营定义用户运营目标用户运营方法用户运营定义用户运营是指运营人员通过一系列的运营手段,诱发用户去做所要求的行为,让用户为产品创造更多的价值,进而实现产品的商业目标。用户运营目标提升产品的整体用户量;提升用户的活跃度。用户运营方法针对用户运营的两个目标进行分析:1)为了提升产品的整体用户量,需要开源节流。一方面要“开支”,通过渠道拓展来吸引更多的用户使用产...
2019-03-02 20:30:15
474
1
原创 产品经理需要了解的一些缩写术语
产品经理需要了解的一些缩写术语BRD——MRD——PRD商业需求文档——市场需求文档——产品需求文档PV(page view),页面浏览量,一个访问者打开了你的几个页面UV(unique visitor),访问某个站点或点击某条新闻的不同IP地址的人数PV单价,每PV的收入,衡量页面流量变现能力的指标CPC(cost per click),按点击计费CPA(cost per acti...
2019-03-02 17:18:04
1433
原创 产品经理的岗位职责
产品经理的岗位职责产品经理是什么产品经理主要职责1.产品规划市场调研用户调研竞品分析2.产品设计3.产品执行产品经理是什么产品经理作为互联网项目的主心骨,连接着团队的所有成员(开发、设计、运营、测试、市场等),用合理的产品规划和清晰的产品愿景带领大家前进,通过满足用户需求来创造属于自己的商业利益。简单一句话概括产品经理:对整个产品负责的人。产品经理主要职责产品经理(PM)的主要职责包...
2019-03-02 17:09:02
1911
原创 状态建模
状态建模为什么要状态建模领域模型描述了问题域中事物及其之间的关系与量化的约束,我们需要进一步验证模型的有效性与完备性,管理这些事物的生命周期成为有效的方法 - 状态建模。在软件分析与设计中,状态图是业务逻辑合理性分析的最重要工具。是设计分析师最常用工具。它主要解决以下问题:从实例的角度识别业务事件,完善、优化业务过程的细节,细化业务过程与领域模型给出业务过程合理性与完备性验证...
2018-07-01 22:38:07
1386
原创 用例建模之用例图
用例图 UseCase Diagram 通俗来说,用例是文本形式的情节描述,用以说明某参与者使用系统以实现某些目标。用例建模主要是编写文本的活动,而非制图。用例建模的制品有用例图和用例描述,我这篇博客只说下画用例图的一些方法和注意要点。但需要强调的是,用例是文本文档,用例图在编写用例工作中是次要的。 制作合理的用例图,通常给团队带来以下利益:明确系统的业务范围、服务对象(角色...
2018-07-01 22:10:23
8334
原创 Git提交文件至项目的远程仓库
Git上传文件至项目的远程仓库关于git的基本简介和操作我在这里就不赘述了,萌新们可以去看看廖雪峰老师的官方网站,按教程一步步来,新手上路完全没压力,这篇博客也是参考了廖老师的教程而编写的,感谢廖老师。链接戳这里:廖雪峰git教程现在进入正题:使用git提交文件至远程仓库。首先明确大致流程,将远程库克隆到本地,在copy上进行你所需要的改动(添加各种文件),push至远程仓库。1....
2018-04-12 19:50:47
7254
原创 最长公共子串的优化——动态规划
题名:最长公共子串题目描述: 输入为两行可能包含空格的字符串,输出它们的最长公共连续子串的长度。解题思路: 比较常规的想法是两个for循环加一个while循环,时间复杂度为n的三次方。这是我在一个面试中遇到的题目,当时就傻乎乎地写了常规的解法,主要是由于经验不足,想不到动态规划的方向上去。时间上的优化一般要以牺牲空间为代价,我们可以用一个二维数组dp[N][
2018-03-23 19:35:12
428
原创 CCF CSP 201503-4:网络延时
问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。 当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间
2018-03-17 12:21:01
405
原创 CCF CSP 201503-3:节日
问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你a,b,c和y1, y2(1850 ≤y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。 提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年
2018-03-16 20:30:57
298
原创 CCF CSP 201609-3:炉石传说
题目描述很长,我这里就省略了,直接上代码:#include using namespace std;void output(vector > v){ cout << v[0].first << endl; cout << v.size()-1 << " "; for(int i = 1; i < v.size(); i++){ cout << v[i].first << "
2018-03-15 14:24:50
410
1
原创 CCF CSP 201503-2:数字排序
代码如下:#include using namespace std;void p_sort(vector > &p){ int n = p.size(); for(int i = 0; i < n; i++){ for(int j = 0; j < n - i - 1; j++){ if(p[j].second < p[j+1].second){ swap(p[j
2018-03-14 12:57:37
422
原创 CCF CSP 201509-2:日期计算
代码如下:#include using namespace std;bool isleapyear(int y){ return (y%4==0&&y%100)||y%400==0;}//日期计算 int main(){ int y, d, mon, day; cin >> y >> d; int month[13] = {0, 31, 28, 31, 30,
2018-03-14 11:37:32
253
原创 CCF CSP 201512-2:消除类游戏
代码如下:#include using namespace std;//消除游戏 int main(){ int n, m; cin >> n >> m; vector > v(n, vector(m)); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cin >> v[i][j]; } }
2018-03-14 11:11:47
508
原创 CCF CSP 201609-2:火车购票
代码如下:#include using namespace std;//火车购票 int main(){ int n; cin >> n; vector > v(20, vector(5, 0)); //初始化火车票,0代表未被购买 for(int i = 0; i < n; i++){ int p; //要购买的票数 cin >> p; int d
2018-03-10 17:02:18
299
原创 CCF CSP 201612-2:工资计算
代码如下:#include using namespace std;//工资计算 int main(){ int s; cin >> s; if(s <= 3500){ cout << s << endl; return 0; } double a = s - 3500, ans = 3500; int arr1[] = {1500, 3000, 4500, 2
2018-03-10 10:38:19
257
原创 CCF CSP 201612-1:中间数
代码如下:#include using namespace std;//中间数 int main(){ int n; cin >> n; vector v(n); for(int i = 0; i < n; i++){ cin >> v[i]; } sort(v.begin(), v.end()); int m = n / 2, num = 1; if(n%2
2018-03-10 00:10:14
202
原创 CCF CSP 201703-2:学生排队
问题描述 体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移
2018-03-09 22:05:41
179
原创 LeetCode 792. Number of Matching Subsequences
题名:匹配子序列的数量难度:medium题目描述如下:题目分析: 该题要求在一堆words里面找出是字符串S子序列的字符串数目,如果简单地在遍历S的基础上,再遍历words里的每个字符串则会导致超时。我们可以“跟踪”words中每个字符串的“进度”: vector > v[128],pair的first代表words第几个字符串,second则表示该字符串目前期
2018-03-09 20:27:06
466
原创 LeetCode 795. Number of Subarrays with Bounded Maximum
题名:最大值有边界的子数组的数目难度:medium题目描述如下:代码如下:class Solution {public: int numSubarrayBoundedMax(vector& A, int L, int R) { int ans = 0, big = -1, end = -1; for(int i = 0; i < A.s
2018-03-08 21:03:49
255
原创 CCF CSP 201709-1:打酱油
代码如下:#include using namespace std;//打酱油 int main(){ int n; cin >> n; int ans; int f, t, o, temp; f = n / 50; temp = n % 50; t = temp / 30; o = temp % 30 / 10; ans = f * (5 + 2) + t * (3
2018-03-08 19:37:56
184
原创 CCF CSP 201709-2:公共钥匙盒
公共钥匙盒个人思路: 这道题主要考查模拟钥匙借还操作,需要按照题目所给规则的顺序来进行操作。我用二维vector来存储要操作的事件: vector > v(m, vector(2)); //v[i][0]为时间;v[i][1]为操作钥匙号,正数为还,负数为借。 然后自己写了个排序函数,按照题设规则来排列这些操作事件,最后只要按这个顺序直接
2018-03-08 15:12:03
240
原创 LeetCode 794. Valid Tic-Tac-Toe State
题目描述:代码如下:class Solution {public: bool validTicTacToe(vector& board) { int x = 0, o = 0; //X与O的数目 for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){
2018-03-07 11:03:40
333
原创 分治排序之快排
归并排序和快排: 分而治之排序的方法包括归并排序和快排,归并排序partition简单,merge比较复杂,“易分难合并”。快排的特点则是“难分易合并”。快排首先要先确定中心点pivot的选取规则,pivot把数组分为两部分,左边的数都小于pivot,右边的数都大于等于pivot,然后左右两部分继续快排,直到只剩下一个数,即无法进行partition操作为止。一般简单地直
2018-03-07 10:38:07
289
原创 CCF CSP 201712-2:游戏
代码如下:#include using namespace std;//游戏int main(){ int n, m, num = 1; cin >> n >> m; vector v(n, 1); for(int i = 0; count(v.begin(), v.end(), 1) > 1; i++){ if(i == n) i = 0;
2018-03-06 23:17:19
282
原创 CCF CSP 201712-1:最小差值
代码如下:#include using namespace std;//最小差值 int main(){ int n; cin >> n; vector num(n); for(int i = 0; i < n; i++){ cin >> num[i]; } sort(num.begin(), num.end()); int
2018-03-06 23:12:45
241
原创 LS链路状态路由算法
Link-State链路状态路由算法又被称为Dijkstra算法,可计算在网络中从一个节点到所有其他节点的最短路径,特性是经过k次循环可以得知到达k个目的节点的最短路径。下面看下书上的LS算法的伪代码。d(v):从源节点到达目标v的最短路径的距离。N':节点的子集;v在N'中如果从源节点到v的最短路径已知。c(u, v):网络中给出的u, v节点之间的距离。//
2018-03-06 23:02:35
7472
原创 LeetCode Exercise 17:01 Matrix
题名:01矩阵,最近的0难度:Medium题目描述:代码如下:class Solution {public: vector> updateMatrix(vector>& A) { int r = A.size(), c = A[0].size(); vector> ans(r, vector(c)); queue> q; int D[
2018-01-12 17:55:06
158
原创 LeetCode Exercise 16:证明NP完全问题
题号:8.14题目描述:中文释义:证明以下问题是NP完全问题:给出一个无向图 G = (V, E)和一个整数 k,返回一个大小为 k 的团和一个大小为 k 的独立集。解题思路: 这道题是证明NP完全问题,所描述的问题有 independent set 独立集问题和 clique 团问题。 根据书上所提供的以下搜索问题分类表格,我们可以得知
2017-12-31 21:59:52
1179
原创 LeetCode Exercise 15: Summary Ranges
题名:Summary Ranges难度:Medium题目描述:代码如下:class Solution {public: vector summaryRanges(vector& nums) { int n = nums.size(); vector ranges; if(n == 0){ retu
2017-12-24 22:35:51
168
原创 LeetCode Exercise 14: Maximal Square
题名:Maximal Square难度:Medium题目描述:题目思路:这是一个动态规划问题,关键在于找到状态方程。题目要求最大面积area,由于是正方形,我们可以转为计算最大边maxsize,area = maxsize^2。矩阵从上往下遍历,可以知道一个点(i,j)往左上方可以形成的正方形大小取决于它周围的三个点:(i, j - 1),(i - 1, j),(i
2017-12-13 20:58:45
152
原创 LeetCode Exercise 13: Contains Duplicate III
题名:Contains Duplicate III难度:Medium题目描述:题目思路:这道题目乍一看很简单,可实际上涉及了时间复杂度和数据溢出问题。一开始尝试C++用两个简单的循环:在遍历整个vector的情况下,把每个元素与之其后的k个元素检测是否满足条件,结果显示超时。Java中的TreeSet结构很适合这道题,我们可以将一个TreeSet控制成一个大小为k的
2017-12-12 21:38:50
162
原创 LeetCode Exercise 12:Minimum Size Subarray Sum
题名:Minimum Size Subarray Sum难度:Medium题目描述:代码如下:class Solution {public: int minSubArrayLen(int s, vector& nums) { int n = nums.size(), left = 0, right = 0; int su
2017-12-04 01:11:20
146
原创 LeetCode Exercise 11: Spiral Matrix
题名:Spiral Matrix难度:Medium题目描述:代码如下:class Solution {public: vector spiralOrder(vector>& matrix) { vector spiral; if(matrix.size() == 0 || matrix[0].size() == 0){
2017-11-20 22:12:03
228
原创 LeetCode Exercise 10: Merge Intervals
题名:Merge Intervals难度:Medium题目描述:代码如下:/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int
2017-11-19 23:30:17
151
原创 LeetCode Exercise 9: Minimum Path Sum
题名:Minimum Path Sum难度:Medium题目描述:分析思路: 从左上角到右下角找“最短路径”,并且题目也提示说:每次只能下移或者右移,这无疑简化了思路,令sum[i][j]代表到点grid[i][j]的最短路径,我们可以得出这样一个推导式:sum[i][j] = min(sum[i-1][j], sum[i][j-1]) + grid
2017-11-13 16:45:38
245
原创 LeetCode Exercise 8: Remove Nth Node From End of List
题名:Remove Nth Node From End of List难度:Medium题目描述:题目分析:如果不要求遍历次数是很简单的,可以遍历一次得到链表长度L,然后再一次遍历删除第L-n+1个节点。现在我们考虑如何一次遍历删除倒数第n个节点。我们可以使用两个指针:begin和end,两个指针之间隔开n的距离。(这样如果end是尾节点,那么begin指向的就是目标节点的
2017-11-02 22:17:45
161
原创 LeetCode Exercise 7: Group Anagrams
题名:Group Anagrams难度:Medium题目描述:题目分析:anagram:由颠倒字母顺序而构成的字,题意很容易懂,就是找出所有组成字母一样的字符串。但乍一看好像很麻烦的样子,如果把每一个string都与其它string对比再分类的话,时间复杂度很高。这些字符串有什么共同点呢?前面说了,它们的组成字母相同,如果可以将这些组成字母作为一个个的tag,来给这些字符串
2017-10-25 23:00:49
220
原创 LeetCode Exercise 6: Remove Element
题名:Remove Element难度:Easy题目描述:代码如下:class Solution {public: int removeElement(vector& nums, int val) { int n = 0; for (int i = 0; i < nums.size(); i++) { if
2017-10-22 21:17:48
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人