ARTS 第二周

1.Algorithm

  给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

  对两数相加方法的可视化: 342 + 465 = 807342+465=807, 每个结点都包含一个数字,并且数字按位逆序存储

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    ListNode dummyHead = new ListNode(0);
    ListNode p = l1, q = l2, curr = dummyHead;
    int carry = 0;
    while (p != null || q != null) {
        int x = (p != null) ? p.val : 0;
        int y = (q != null) ? q.val : 0;
        int sum = carry + x + y;
        carry = sum / 10;
        curr.next = new ListNode(sum % 10);
        curr = curr.next;
        if (p != null) p = p.next;
        if (q != null) q = q.next;
    }
    if (carry > 0) {
        curr.next = new ListNode(carry);
    }
    return dummyHead.next;
}

  2.Review

    阅读 redis 技术文档 LUA 脚本

  使用 lua 可以很明显的提升 redis 的效率

可以使用两个不同的Lua函数从Lua脚本调用Redis命令:

  • redis.call()
  • redis.pcall()

  redis.call()类似于redis.pcall(),唯一的区别是如果Redis命令调用将导致错误,redis.call()将引发Lua错误,反过来将强制EVAL向命令调用者返回错误,同时redis.pcall将陷阱错误并返回Lua表代表错误。

  lua 的命令

  1. EVAL 执行Lua脚本
  2. EVALSHA 执行Lua脚本的sha1
  3. SCRIPT LOAD 加载Lua脚本到Redis Script
  4. SCRIPT FLUSH 清空Redis Script
  5. SCRIPT EXISTS 判断是否存在Rdis Script中

   Lua和Redis数据类型之间的转换

  Redis到Lua转换表。

  • Redis整数回复 - > Lua号
  • Redis批量回复 - > Lua字符串
  • Redis多批量回复 - > Lua表(可能有其他Redis数据类型嵌套)
  • Redis状态回复 - > Lua表,ok其中包含一个包含状态的字段
  • Redis错误回复 - > err包含错误的单个字段的Lua表
  • Redis Nil批量回复和Nil多批量回复 - > Lua false布尔类型

  Lua到Redis转换表。

  • Lua number - > Redis整数回复(数字转换为整数)
  • Lua字符串 - > Redis批量回复
  • Lua表(数组) - > Redis多批量回复(如果有的话,截断到Lua数组中的第一个nil)
  • Lua表有单个ok字段 - > Redis状态回复
  • Lua表有单个err字段 - > Redis错误回复
  • Lua boolean false - > Redis Nil批量回复。

还有一个额外的Lua-to-Redis转换规则没有相应的Redis到Lua转换规则:

  • Lua boolean true - > Redis整数回复,值为1。

还有两个重要的规则需要注意:

  • Lua有一个数字类型,Lua数字。整数和浮点数之间没有区别。所以我们总是将Lua数转换成整数回复,删除数字的小数部分(如果有的话)。如果你想从Lua返回一个浮点数,你应该将它作为一个字符串返回,就像Redis本身一样(参见例如ZSCORE命令)。
  • 没有简单的方法有lua阵内尼尔斯,这是的Lua表语义的结果,所以当Redis的一个Lua阵列转换成Redis的协议如果遇到零的转换停止

  Helper函数返回Redis类型

  脚本的原子性

3.TIPS

  having 字段

  “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。

  “Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(population)>1000000
1》当分组筛选的时候 用having

2》其它情况用where
用having就一定要和group by连用,用group by不一有having (它只是一个筛选条件用的)
只要条件里面的字段, 不是表里面原先有的字段就需要用having. SQL在查询表的时候先把查询的字段放到了内存里,而where查询的时候是从表里面查的,其余需要用having。

4.Share

阅读了 极客时间 的 深入拆解虚拟机 Java 基本类型

  Java的基本类型都有对应的值域和默认值. 从图上看值域

依次扩大,前面的值域被后面的值域所包含,前面的值域转后面的无需强转,反之.在内存中默认值都是0.

  除longhedouble外,其他基本类型与引用类型在解释执行栈帧中占用的大小是一致的,单数在对中占用的大小不同.

  

原文地址:https://www.cnblogs.com/panda777/p/10630843.html

时间: 2024-10-10 07:36:04

ARTS 第二周的相关文章

ARTS第二周

第二周. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文章 以下是各项的情况: Algorithm 链接:[LeetCode-01]-Two Sum 上周的有点问题 : 假如数组[3,2,4]给的数据是 6 ,按我之前的思路 直接从遍历去找当前遍历的数和所给数据和的差值,但如果从第一个数3走,那给出的答案就会是[0,0]而非期望的[1,2].所以需要修改

2014025670(12)《嵌入式系统程序设计》第二周学习总结

这周学习了gcc和gdb的使用还有makefile. 教材学习内容总结 教材内容开始看的有些吃力,很多地方都不太懂,网上查询和询问同学和老师之后,了解了很多,但是具体操作和实现方面还是比较难. 教材学习中问题和解决过程 对于gcc的操作在实验楼的学习中还是比较顺利,gdb的操作感觉有些村存在问题-----gdb的调试方面有些吃力,应该是自己没努力的结果,打算把问题汇总一下,再试试实验. 课后作业中的问题和解决过程 应用实验楼的第二周,第一周的内容感觉简单,消化很快,没想到第二周就感觉有些吃力,不

学习进度条第二周

  第二周 所花时间 12小时 代码量 180行左右 博客量 3 了解到的知识点 Javaweb开发html的学习,还有javascript的特效和链接网页跳转,网页中图片自行转换,以及构建之法第1.2.3章相关的知识.

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

《Machine Learning》系列学习笔记之第二周

第二周 第一部分 Multivariate Linear Regression Multiple Features Note: [7:25 - θT is a 1 by (n+1) matrix and not an (n+1) by 1 matrix] Linear regression with multiple variables is also known as "multivariate linear regression". We now introduce notatio

20145123刘森明《Java程序设计》第二周学习总结

教材学习内容总结 这一章学习的知识,在以前的C语言中已经学习过了.所以学起来比较的轻松.主要讲的就是数据与变量的类型和运算符:流程控制等知识点. 教材学习中的问题和解决过程 这周在Java上花费的时间较多.首先对于java语言中,虽然之前对于java的语言的语法有所了解,但是对于具体的细节还存在问题.对于输出函数System.out.printf()和Syetem.out.println()的区别,看书后得知Syetem.out.println()函数在编译后会换行,在第一章的“hello wo

20145229吴姗珊《Java程序设计》第二周学习总结

教材学习内容总结 一.类型.变量与运算符 1.类型 整数:可细分为short整数.int整数和long整数.不同长度的整数可储存的整数范围也不同. 字节:byte类型顾名思义.长度就是一字节,需要逐字节处理数据时则需要使用.用于整数时,可表示-128~127的整数. 浮点数:主要用来储存小数数值,主要分为float和double. 字符:char类型用来储存‘A','B','林'等字符符号. 布尔:boolean类型可表示true和false,分别表示真和假. 2.变量 基本规则:用关键词来声明

第二周感悟

开始上自习的第二周,觉得得努力去尝试一下,高中时没努力学习,结果高考失败了,大学前两年半也是得过且过的度过每一天,感觉再不努力就要废了,就想着考研,考上一个更好的学校,圆了之前的梦,既然有了目标就要坚持下去,不能认怂,不管结局如何,以后都会留下我曾经奋斗过的记忆,会使我的人生添上一丝色彩,现在每天都去上自习,日子过得挺充实的,这是以前从来没有过的感觉,平淡而又颓靡的生活不是我们需要的,在我们的这个的年纪就需要抛开一切放手去博,俗话说,搏一搏,单车变摩托,不拼搏的话,不要说单车,连玩具车也不会有的

进度条--第二周

第二周 所花时间(包括上课) 27个小时 代码量(行) 600行 博客量(篇) 3篇 了解到的知识点 1.文件的输入输出流的复习2.重新复习数据结构中的栈,但是还是又不懂的地方,导致这次实验括号的功能没有加入.