ATRS第十周打卡

1.Algorithm

  https://leetcode-cn.com/problems/merge-two-sorted-lists/

  

方法 1:递归

想法

我们可以如下递归地定义在两个链表里的 merge 操作(忽略边界情况,比如空链表等):

\left\{ \begin{array}{ll} list1[0] + merge(list1[1:], list2) & list1[0] < list2[0] \\ list2[0] + merge(list1, list2[1:]) & otherwise \end{array} \right.{list1[0]+merge(list1[1:],list2)list2[0]+merge(list1,list2[1:])?list1[0]<list2[0]otherwise?

也就是说,两个链表头部较小的一个与剩下元素的 merge 操作结果合并。

算法 我们直接将以上递归过程建模,首先考虑边界情况。 特殊的,如果 l1 或者 l2 一开始就是 null ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个的头元素更小,然后递归地决定下一个添加到结果里的值。如果两个链表都是空的,那么过程终止,所以递归过程最终一定会终止。

class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if (l1 == null) {
            return l2;
        }
        else if (l2 == null) {
            return l1;
        }
        else if (l1.val < l2.val) {
            l1.next = mergeTwoLists(l1.next, l2);
            return l1;
        }
        else {
            l2.next = mergeTwoLists(l1, l2.next);
            return l2;
        }

    }
}

2.Review

  https://link.medium.com/qNt4XAqc0W

3.Tips  

  

@PostMapping("/multiUpload")
@ResponseBody
public String multiUpload(HttpServletRequest request) {
    List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
    String filePath = "/Users/itinypocket/workspace/temp/";
    for (int i = 0; i < files.size(); i++) {
        MultipartFile file = files.get(i);
        if (file.isEmpty()) {
            return "上传第" + (i++) + "个文件失败";
        }
        String fileName = file.getOriginalFilename();

        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("第" + (i + 1) + "个文件上传成功");
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
            return "上传第" + (i++) + "个文件失败";
        }
    }

    return "上传成功";

}

  

4.Share

  https://www.cnblogs.com/tanshaoshenghao/p/10924205.html

  javah常量池  把经常使用的数据放到内存中,避免重复的创建和销毁,实现数据共享,提高系统性能。

  从jdk1.7后,字符串常量池被实现在Java堆内存中

  String s1 = "hello"; String s2 = new String("hello");

  s1 是先去常量池中找,如果没有在new 放回常量池,s2 直接new 不经过常量池。

  String s1 = new String("hello ") + new String("world");

  现在堆中创建2个对象,在使用 stringBuilder进行拼接,然后产生新的对象 这时变量s1指向新对象"hello world".

  s1.intern();

  这个是去常量池中查询有无该字符串 如果有直接返回 没有,在常量池中注册该变量,然后再返回。

  String s1 = "hello "; String s2 = "world"; String s3 = s1 + s2; String s4 = "hello world"; System.out.println(s3 == s4);

  s3 是用stringbuilder进行拼接 new 出对象 所以s3 != s4

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

时间: 2024-10-09 04:00:16

ATRS第十周打卡的相关文章

2017-2018-1 20155232 《信息安全系统设计基础》第十周课堂测试(ch06)补交

# 2017-2018-1 20155232 <信息安全系统设计基础>第十周课堂测试(ch06)补交 上课时完成测试后在提交的时候,没有提交成功,进行补交. 1.下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为() A 1 B 1/4 C 1/2 D 3/4 正确答案: D 解析:p431----缓存命中:当程序需要第(k+1)层的数据对象d的时候,首先会在第k层找d:如果d刚好缓存在第k层,那么就叫做缓存命中:反之,不命中,在填充了之后,对于x和y数组,只有在引用

linux学习第十周总结

linux学习第十周总结 接着上周的mysql,重点终结日志管理 ,备份还原,主从复制和mysql集群 一.mysql日志管理 事务日志 transaction log 错误日志 error log 通用日志 general log 慢查询日志 slow query log 二进制日志 binary log 中继日志 reley log 1.事务日志 事务型存储引擎自行管理和使用,建议和数据文件分开存放 redo log undo log Innodb事务日志相关配置: show variabl

第十周周总结

周数 专业学习目标 专业学习时间 新增代码量 人文方面的学习 知识技能总结 第 十 周 数据结构: 树,二叉树 5h 400左右 <只有偏执狂才能生存> 区分树的各种表示法以及树的三种遍历 WEB:事件处理的相关事件 5h 400左右 完成事件处理的键盘鼠标相关事件

20155335俞昆《java程序设计》第十周总结

学号 2016-2017-2 <Java程序设计>第十周学习总结 ## 事实上网络编程,我们可以简单的理解为两台计算机相互通讯数据而已,对于程序员而言,掌握一种编程接口并使用一种编程模型相对而言就简单多了,javaSDK提供了一些相对简单的Api来完成12这些工作,Socket就是其中之一,对于java而言,Api的存在和java.net包里面.因此只要导入这个包就可以准备网络编程了. 客户机到服务机的模型就是网络编程的基本模型,简单的说就是引进这两个进程之间的相互通信,其中一个必须提供固定的

第十周进度条

第十周          日期  星期一   星期二   星期三   星期四   星期五   星期六   星期日  了解到的知识点      

嵌入式Linux裸机开发(十)——SD卡启动

嵌入式Linux裸机开发(十)--SD卡启动 存储设备分类: 磁存储设备:软盘.硬盘.光盘.CD.磁带 Flash:NandFlash.NorFlash 缺点:时序复杂,无坏块处理机制,接口不统一 NandFlash:MLC(可靠性差,容量大).SLC(可靠性高.容量小) 扩展卡式Flash:SD卡.MMC卡.MicroSD(TF卡) 内部为NnadFlash存储颗粒,外部封装了接口,接口标准统一.通用. 缺点:频繁使用导致卡槽接触不可靠 iNand.MoviNand.eSSD: 内部为Nand

第十周(补)

最近这段时间对自己的学习状态很不满意,上课一直开小差,只好利用课余的时间去和学霸请教了. 周次 学习时间 新编写代码行数 博客量(篇) 学到知识点 第十周 5 120 1 HTML                                                  

学习进度条 第十周

到了发进度条的时候才想起来上周的进度条忘记发了,这周看了孟晨助教的评论,给自己指出了好多问题(虽然有些术语还没接触过),发现自己有一点毛病很明显:写文档的能力太差,写东西比较随意,想到哪写到哪,以后要多向写文档好的同学看齐. 本周末本计划开始冲刺,由于找到的一些可以添加的demo有些问题迟迟没有开始,下周会抓紧开始   第十周 所花时间(H) 10 代码量(行) 2000 博客量(篇) 1 了解到的知识点 安卓开发的一些知识

软件工程_东师站_第十周作业

一.PSP Data Type Job start Int End Total 20160510 助教 团队作业二 20:00 5 21:00 55 20160511 助教 团队作业二.三 18:45 16 20:45 104 20160512 耐撕 站立会议 18:15   18:35 20 二.进度条   代码行数 博客字数 知识点 第一周 400 430 见我博客软件工程——师大站1 第二周 0 5200 见我博客软件工程_东师站_课堂笔记 第三周 0 63 站立会议.单元测试 第四周 1