码迷,mamicode.com
首页 > 其他好文 > 详细

ATRS第十周打卡

时间:2019-05-26 19:52:25      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:想法   turn   sts   tostring   Servle   default   sys   bin   sheng   

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

ATRS第十周打卡

标签:想法   turn   sts   tostring   Servle   default   sys   bin   sheng   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!