回顾

  
  工作:pendding
  学习:看算法导论第一章,leetcode还在做(本身翻译错误,被误导了)。
  体会:
    1) 浩俊之前推荐让我看的《算法导论》,昨天再回过头看,里面很多确实是机器学习常用的方式,部分内容,如动态规划,水哥也提到过。所以算法导论也得结合着看。
    2) 《机器学习》理解行业术语,《算法导论》提升思维粒度。
    3) 昨天饮食整体控制的不是特别好,晚间吃了过多的零食。
    4) 今天开始日记开始迁移到博客园!
 
 
Todo list
  
 
  1. 工作:新闻排重评估 (紧急重要的)今天务必完成。
  2. 工作:数据监控系统方案调研 (非紧急重要的)
  3. 健康:跑步7公里(完成)
  4. 学习:leetcode做一道算法题(非紧急重要的)
  5. 健康:后背训练;(非紧急非重要的)
  6. 学习:算法导论(非紧急重要的) 
 
上午
  
  早餐:空腹
  运动:跑步7公里
 
  

 
 
中午
  
   
 
下午
  
 待续....

    
 
分享
  
  1、  新闻排重设计
  2、leetcode两数之和
#include <vector>
#include <map>
/**
*
*给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
*你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
*case:
*给定 nums = [2, 7, 11, 15], target = 9
*因为 nums[0] + nums[1] = 2 + 7 = 9
*所以返回 [0, 1]
*/
using namespace std;
class Solution {
public:
    // 两两对比的方式,时间复杂度为O(n2)
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> ret;

        // 第一种
        /*for (int i = 0; i < nums.size(); i++) {
            for (int j = i + 1; j < nums.size(); j++) {
                if (nums[i] + nums[j] == target) {
                    ret.push_back(i);
                    ret.push_back(j);
                    return ret;
                }
            }
        }*/

        // 第二种:数据插入到hashmap里,然后通过target - nums[i]来确定,时间复杂度为O(2n)
        map<int, int> m;
        ; i < nums.size(); i++) {
            m[nums[i]]  = i;
        }
        ; i < nums.size(); i++) {
             && i != m[target - nums[i]]) {
                ret.push_back(i);
                ret.push_back(m[target - nums[i]]);
                return ret;
            }
        }
        return ret;
    }
};
 
  3、leetcode两数相加:
#include <vector>
#include <map>
#include <iostream>
#include <math.h>
/**
*
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
*/
using namespace std;

struct ListNode{
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL){}
};

template<class T>
int length(T& arr) {
    ]);
}

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        uint64_t carry = , sum = ;
        ListNode prehead(), *p = &prehead;

        while (l1 || l2) {
            sum =  (l1 ? l1->val : ) + (l2 ? l2->val : ) + carry;
            sum = carry / ;
            p->next  = );

            l1 = l1 ? l1->next : l1;
            l2 = l2 ? l2->next : l2;
            p = p->next;
        }
        return prehead.next;
    }
};

int main(int argc, char** argv){
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};
    ListNode* tmp = );
    ListNode* ptr1 = tmp;
    ; i < length(a); i++) {
        ptr1->next = new ListNode(a[i]);
        ptr1 = ptr1->next;
    }
    ptr1 = tmp->next;
    delete tmp;

    tmp = );
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};
    ListNode* ptr2 = tmp;
    ; j < length(b); j ++) {
        ptr2->next = new ListNode(b[j]);
        ptr2 = ptr2->next;
    }
    ptr2 = tmp->next;
    delete tmp;

    Solution* solution = new Solution();
    solution->addTwoNumbers(ptr1, ptr2);
    delete solution;
    ;
}

 

推荐
 
 
 
 
 
 
 

【程序员札记#学习&&塑形# 】2018年5月04号的更多相关文章

  1. GJM : 游戏程序员的学习之路

    原文作者:miloyip  原帖地址:http://gad.qq.com/article/detail/7180681 原帖备注:版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 腾讯前端技术总监 ...

  2. PHP程序员进阶学习书籍参考指南

    PHP程序员进阶学习书籍参考指南 @heiyeluren lastmodify: 2016/2/18     [初阶](基础知识及入门)   01. <PHP与MySQL程序设计(第4版)> ...

  3. .net程序员的学习计划

    .net程序员的学习计划 与其说是计划,不如说是抄来的课程表.基于最近老大要求写一份一年的职业规划.我是一个向来没什么规划的人,不是职场规划,就连平时的规划都没有,基本上就是有什么任务就去完成.回想起 ...

  4. zz 游戏程序员的学习之路(中文版)

    游戏程序员的学习之路(中文版) Milo Yip · 1 天前 感谢 @楚天阔(tkchu)编写脚本及整理中文译本数据,自动从英文版生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面. ...

  5. 程序员谈学习:我为什么要学习Linux?

    http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...

  6. PHP开发程序员的学习路线

    PHP开发程序员的学习路线 兄弟连PHP培训,简单为大家梳理了每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟 ...

  7. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  8. .Net程序员快速学习安卓开发-布局和点击事件的写法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...

  9. 五年.net程序员Java学习之路

    大学毕业后笔者进入一家外企,做企业CRM系统开发,那时候开发效率最高的高级程序语言,毫无疑问是C#.恰逢公司也在扩张,招聘了不少.net程序员,笔者作为应届生,也乐呵呵的加入到.net程序员行列中. ...

随机推荐

  1. linux 定时任务详解 按秒设定

    实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务. 名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使 ...

  2. 使用jquery获取radio的值

     使用jquery获取radio的值,最重要的是掌握jquery选择器的使用,在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来筛选,比如有以下的一些radio项: ...

  3. 【一天一道LeetCode】#137. Single Number II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  4. path和classpath的区别

    path的作用 path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行JAVA文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6 ...

  5. C++为什么要设计友元函数和友元类

    1. 首先要提一下java,比如java定义一个类1.class,会生成字节码.java有反射机制,可以找到类对象,直接修改类的私有属性.逐渐反射机制成为了一种标准,sun做成标准,JDK的API函数 ...

  6. 判断无向图是否有环路的方法 -并查集 -BFS

    可以利用并查集或者带颜色标记的BFS(来自算法导论)判断. 首先介绍第一种,用并查集来判断: 首先初始化所有元素的根为-1,-1代表根节点,接下来对于图中的每一条边(v1,v2)都并入集合,并入的方式 ...

  7. Dom4j修改xml文档引入

    前面介绍了如何解析xnl文档的内容,这里对修改xml展开讨论. 一.首先看一下,写出内容到xml文档的主要代码: XMLWriter writer = new XMLWriter(OutputStre ...

  8. redis3.0.5在linux上安装与配置

    redis3.0.5在linux上安装与配置 rhel6/ubuntu14 1 下载 # wget http://download.redis.io/releases/redis-3.0.5.tar. ...

  9. Chapter 1 Securing Your Server and Network(14):限制功能——xp_cmdshell 和OPENROWSET

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38656615,专题目录:http://blog.csdn.net/dba_huangzj ...

  10. Linux IPC实践(8) --共享内存/内存映射

    概述 共享内存区是最快的IPC形式.一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据(如图). 共享内存 VS ...