前言 最简单的动归,依稀记得当年小组免试题最后一关就是这样的(恩,是最后一关的前一部分哈),思路和之前的博客一样,做之前又复习了一遍博客,然后就轻松+愉快(哼,才不是呢,一开始没搞懂m,n怎么处理,又不能在类里全局数组&传数组很麻烦,整了半天表。。) 题目 有一个机器人位于一个 m × n 个网格的右上角。 机器人每一时刻只能向下或者向左移动一步。机器人试图达到网格的左下角。每个网格上有一个数字权值,机器人希望它走到左下角的路径权值和最大。 问这个最大路径权值和是多少? 注意事项 输入一个n x m 的矩阵,保证 n <= 200,m <= 200。(康康提示,nm相等,并且nums数组已经输入好了权值,不用自己手动输入了) 题目数据保证 0 <= i <= n-1 , 0 <= j <= m-1, nums[i][j] <= 100000。 样例 给出 [ [1,2,3,4], [3,5,6,7], [9,10,1,2], 继续阅读 >>


康艺杰 18/01/31 23:59:24
第一章1.3节提出了一个概念“版本空间”,搞明白之后其实是蛮简单的一个东西,按书上说的西瓜问题的假设空间如下(Ø表示不存在好瓜坏瓜之分): 编号 色泽 根蒂 敲声 1 * * * 2 青绿 * * 3 乌黑 * * 4 * 蜷缩 * 5 * 硬挺 * 6 * 稍蜷 * 7 * * 浊响 8 * * 清脆 9 * * 沉闷 10 青绿 蜷缩 * 11 青绿 硬挺 * 12 青绿 稍蜷 * 13 乌黑 蜷缩 * 14 乌黑 硬挺 * 15 乌黑 稍蜷 * 16 青绿 * 浊响 17 青绿 * 清脆 18 青绿 * 沉闷 继续阅读 >>


高朴 18/01/31 23:39:55
继承关系下的构造和析构 看一下测试代码: /* * @filename: Inheritance.cpp * @author: Tanswer * @date: 2018年01月31日 14:59:28 * @description: 测试继承关系下的构造和析构 */ #include<iostream> using namespace std; class Base { public: Base(){ cout << "Base ctor ..." << endl; } virtual ~Base(){ cout << "Base dtor ..." << endl; } }; class Derived:public Base { public: D 继续阅读 >>


杜肖孟 18/01/31 16:25:55
线程 #include<thread> 线程的几个重要函数 thread t(func); join(); detach(); get_id(); hardware_concurrency(); 创建一个线程并等待子线程 /************************************************************************* > File Name: test.cpp > Author: chudongfang > Mail: ************************************************************************/ #include<iostream> #include<thread> using namespace std; void func() { cout < 继续阅读 >>


楚东方 18/01/31 15:14:52
没有代码的解释不是解释,没有deadline的任务不是任务,没有流程图或分享的源码阅读不是源码阅读,没有报告的性能测试不是性能测试。 —— 漠冰 曰 这篇文章打算作为INFO命令的输出整理汇总,目前还未全部完成… 1. 环境 代码版本:redis-4.0.6 工具:本地用CLion打开,增加CMakeLists.txt就可以调试了。 cmake_minimum_required(VERSION 3.6) project(redis-4.0.6) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") add_custom_target(redis COMMAND make CFLAGS="-g" -C ${redis-4.0.6_SOURCE_DIR} CLION_EXE_DIR=${PROJECT_BINARY_DIR}) 2. Memory模块 2.1 源码位置 red 继续阅读 >>


杨博东 18/01/27 19:03:44
今天大概总结一下编写服务端程序常用的编程模型。参考UNP第三版第三十章和陈硕的muduo那本书,强烈建议仔细阅读。注意以下代码只是为了显式框架或者说编程模型,不是完整的程序,深夜写的比较任性,不要见怪。 accept + read/write 这个不是并发服务器,而是迭代服务器(iterative server)。 它一次服务一个客户。不适合长连接,适合 daytime 这种 write-only 短连接服务。 void handle(client_socket, client_address) { while(true) { data = client_socket.recv(4096); if(data) client_socket.send(data); else do_error(); } } while(true){ connfd = server_socket.accept(); handle(client_socket, client_address); } accept 继续阅读 >>


杜肖孟 18/01/25 02:32:20
上面这张图就可以很清晰的说明这个问题。(图中最小的方块代表一个partition,包裹partition的方块是RDD,忽略颜色) Job Spark的Job来源于用户执行action操作,就是从RDD中获取结果的操作,而不是将一个RDD转换成另一个RDD的transformation操作。 Stage Spark的Stage是分割RDD执行的各种transformation而来。如上图,将这些转化步骤分为了3个Stage,分别为Stage1,Stage2和Stage3。这里最重要的是搞清楚分割Stage的规则,其实只有一个:从宽依赖处分割。宽依赖概念请戳这里 知道了这个分割规则,其实还是有一点疑惑,为什么这么分? 其实道理蛮明显的,子RDD的partition会依赖父RDD中多个partition,这样就可能会有一些partition没有准备好,导致计算不能继续,所以就分开了,直到准备好了父RDD中所有partition,再继续进行将父RDD转换为子RDD的计算。而窄依赖完全不会有 继续阅读 >>


高朴 18/01/24 23:04:34
前言 一道感觉不难,但是涉及到负数移位运算的坑的题。 正文 题目 如果要将整数A转换为B,需要改变多少个bit位? (两个数都是32位的整数) 样例 如把31转换为14,需要改变2个bit位。 (31)10=(11111)2 (14)10=(01110)2 思路: 恩,就是找对应位上不同的个数,所以想法就是统计两个数异或后的结果中1的个数,(有1就说明对应位上两个数不相同)。 int bitSwapRequired(int a, int b) { int result = 0; int temp = a ^ b; while(temp){ result += 0x01 & temp; temp = temp >> 1; } return result; } 直接超时,卡在-1,1 这组用例上了。 emmmmm还有负 继续阅读 >>


康艺杰 18/01/24 17:34:14
stack 的实现 1.特征:先进后出 。只能插入,删除,访问栈顶的元素 !! 2.实现 可以用 vector ,list ,deque 来实现。但是 vector和deque 的实现要比list实现的性能好 #include<iostream> #include<deque> using namespace std; template<class T ,class cont = deque<T> > //类模板 class stack{ cont tt ; public: T & top(){ return tt.front(); } void pop( ){ tt.pop_front() ; } void push(T temp){ tt.push_front(temp); } int size 继续阅读 >>


刘生玺 18/01/24 16:48:43
我的新博客地址:geekgao.cn RDD被设计为可以记录依赖关系,关系可以分为两类:窄依赖和宽依赖。 窄依赖:表示父亲 RDD 的一个分区最多被子 RDD 一个分区所依赖。 宽依赖:表示父亲 RDD 的一个分区可以被子 RDD 的多个子分区所依赖。 如下图,左边是窄依赖,右边是宽依赖: 作者:gaopu12345 发表于 2018/01/23 23:24:28 原文链接 https://blog.csdn.net/gaopu12345/article/details/79145980 阅读:167 继续阅读 >>


高朴 18/01/23 23:24:28