项目中:今日学习黑马点评中达人探店功能,相对简单点,分析
1.发布探店笔记
2.实现点赞功能
需求:
同一个用户只能点赞一次,再次点击则取消点赞
如果当前用户已经点赞,则点赞按钮高亮显示(前端已实现,判断字段Blog类的isLike属性)
实现步骤:
给Blog类中添加一个isLike字段,标示是否被当前用户点赞
修改点赞功能,利用Redis的set集合判断是否点赞过,未点赞过则点赞数+1,已点赞过则点赞数-1
修改根据id查询Blog的业务,判断当前登录用户是否点赞过,赋值给isLike字段
修改分页查询Blog业务,判断当前登录用户是否点赞过,赋值给isLike字段
3.点赞排行榜
需求:按照点赞时间先后排序,返回Top5的用户
使用SortedSet:
通过 ZSCORE 命令获取 SortedSet 中存储的元素的相关的 SCORE 值。
通过 ZRANGE 命令获取指定范围内的元素。

背诵面试资料:
线程池的核心参数:
corePoolSize:核心线程池大小
maximumPoolSize:线程池能创建线程的最大个数
keepAliveTime:空闲线程存活时间
unit:时间单位,为keepAliveTime指定时间单位
workQueue:阻塞队列,用于保存任务的阻塞队列
threadFactory:创建线程的工程类
handler:饱和策略

线程池的线程池的工作过程如下:
当一个任务提交至线程池之后,
(1)线程池首先判断核心线程池里的线程是否已经满了。如果不是,则创建一个新的工作
线程来执行任务。否则进入
(2)判断工作队列是否已经满了,倘若还没有满,将线程放入工作队列。否则任务存储在队列中,等待执行.
(3)判断线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行。
如果线程池满了,则交给饱和策略来处理任务。原理

力扣题目
三角形的最大周长
class Solution {
    public int largestPerimeter(int[] nums) {
        Arrays.sort(nums);
        for(int i = nums.length -1; i >=2;i--){
            if(nums[i] < nums[i-1] + nums[i-2]){
                return nums[i] + nums[i-1] + nums[i-2];
            }
        }
        return 0;
    }
}

二叉树中序遍历(左根右)
    /**
    * Definition for a binary tree node.
    * public class TreeNode {
    *     int val;
    *     TreeNode left;
    *     TreeNode right;
    *     TreeNode() {}
    *     TreeNode(int val) { this.val = val; }
    *     TreeNode(int val, TreeNode left, TreeNode right) {
    *         this.val = val;
    *         this.left = left;
    *         this.right = right;
    *     }
    * }
*/
方法一:
    class Solution {
        public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> list = new ArrayList<>();
            if(root != null){
                Stack<TreeNode> stack = new Stack<TreeNode>();
                while(root != null || !stack.isEmpty()){
                    if(root != null){
                        stack.push(root);
                        root = root.left;
                    } else {
                        root = stack.pop();
                        list.add(root.val);
                        root = root.right;
                    }
                }
            }
            return list;
        }
}
方法二:
class Solution {
    List<Integer> res= new LinkedList<>();;
    public List<Integer> inorderTraversal(TreeNode root) {
        if(root != null){
            inorderTraversal(root.left);
            res.add(root.val);
            inorderTraversal(root.right);
        }
        return res;
    }
}

二叉树的后序遍历(左右根)
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
方法一:
class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        if(root == null){
            return list;
        }
        Deque<TreeNode> stack = new LinkedList<>();
        TreeNode pre = null;
        while(root != null || !stack.isEmpty()){
            while(root!=null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            if(root.right == null || root.right == pre){
                list.add(root.val);
                pre=root;
                root=null;
            } else {
                stack.push(root);
                root=root.right;
            }
        }
        return list;
    }
}

方法二:
class Solution {
    public List<Integer> list = new ArrayList<>();
    public List<Integer> postorderTraversal(TreeNode root) {
        if(root == null){
            return list;
        }
        postorderTraversal(root.left);
        postorderTraversal(root.right);
        list.add(root.val);
        return list;
    }
}

2022-10-18相关推荐

  1. 千峰教育2218期2022.10.18日

    2022.10.18日 上课时间 早上8:50进直播间 9:00~10:20 10:40~11:50 13:50课程分享 自信 14:00~15:00 15:10~16:20 16:30~18:00 ...

  2. 牛客-模拟、枚举与贪心-2022.10.18

    昨天和今天写的题都比较简单,本来都不想挂,但是还是觉得浅浅记录一下 Captcha Cracker 简单模拟输出即可 #include <bits/stdc++.h> using name ...

  3. ARM 2022.10.18

  4. 黑马程序员前端学校记录2022/10/18

    光标类型 注意事项:只是改变了光标的形状,但是不代表具有相应功能 边框圆角 注意事项:胶囊按钮的高度一半是自己设置 overflow属性 隐藏属性 hover伪类选择器 在一个标签后面加上:hover ...

  5. 2022.10.18 英语背诵

    expel 驱逐,开出 be expelled for cheating persecute 迫害,烦扰 escape being ~d flyover 公路上的路桥 germ 幼芽,起源,微生物 a ...

  6. 2022.10.9-10.16 AI行业周刊(第119期):相信坚持的力量

    篇章一:个人咨询 周六晚上的时候,接了一个粉丝的付费咨询,他硕士毕业将近两年,想基于目前的工作状态,咨询未来短期和长期的规划和想法. 他提到一个疑惑,因为他们公司算法工程师有将近30个人,除了本身的工 ...

  7. 【DockerCE】Docker-CE 20.10.18正式版发布

    官网地址(For RHEL/CentOS 7.9): https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 20.10. ...

  8. 2022.10.17-10.23 AI行业周刊(第120期):工作中,你想担任什么样的角色?

    篇章一:工作角色 上周各个地方一路奔波,去了三个地方出差,进行项目沟通. 然后又外出产品宣传了两场,感觉角色一直在变换,技术.售前.产品. 因此也在想,未来3年后,我的工作角色是怎样的? 从15年毕业 ...

  9. 适合人工智能的编程语言有哪些 人工智能学习路线(2022.10.16)

    人工智能ai用什么编程语言_用于AI开发的6种最佳编程语言 人工智能ai用什么编程语言_用于AI开发的6种最佳编程语言_cxq8989的博客-CSDN博客 最适合人工智能开发的六种编程语言 最适合人工 ...

  10. 2022.2.18解题报告

    2022.2.18解题报告 T1.切蛋糕 题目描述: 思路: 首先,我们先来看一下最少用几刀就可以解决所有情况. 对于一个蛋糕,要分成至少三块,那么最少都要2刀,因为0刀或1刀分出的蛋糕数量都小于3. ...

最新文章

  1. R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化、其中一个Y轴显示为百分比
  2. hibernate(七) hibernate中查询方式详解
  3. 数说真相|46公里内,Uber更划算
  4. Caffe 学习笔记1
  5. 高仿真的类-页面交互
  6. java 工程新建ivy文件_Hadoop学习之路(八)在eclispe上搭建Hadoop开发环境
  7. 软件测试——0422作业
  8. PAT L1-027 出租
  9. 分析:重定向和请求转发
  10. ECharts 定制 label 样式
  11. SQL Server中的报表–结合T-SQL和DAX查询以生成有效的报表
  12. 批处理设置服务器BIOS序列号,批处理设置windows服务器的代码ThecSafe1.9.4第1/3页
  13. class react 获取_「前端进阶」React系列九 - 受控非受控组件
  14. 【优化求址】基于matlab遗传算法求解变电站选址优化问题【含Matlab源码 YC006期】
  15. 51单片机开发板独立按键试水
  16. 健康体检管理系统源码(PEIS) 医院系统源码
  17. Logging initialized using configuration in jar:file:/home/lan/software/hive/lib/hive-common-1.2.1.ja
  18. [解疑]图像、矩阵的二维空间变换
  19. 使用js 计算两个日期之间的相差的天数
  20. 在美国买车_拔剑-浆糊的传说_新浪博客

热门文章

  1. linux fseek函数用法详解
  2. 极浅显编序号常识凸显有序号数n一切整数
  3. Google Earth Engine(GEE)——NASA 和UCSB对比两种降水数据的降水差异分析
  4. java导出excel的两种方式
  5. 1366 xth 的第 12 枚硬币
  6. 技术进步停滞?中本聪是谁?大学教育还有用吗?Peter Thiel 有话要说 | ArcBlock 播客 ⑤...
  7. offsetWidth和width的区别 逻辑中断 delete运算符 。。。。
  8. IS Unrecognized attribute 'targetFramework' 错误解决方案
  9. varchar mysql,VARCHAR主键 – MySQL
  10. 云原生数据湖为什么要选择腾讯云大数据DLC,一份性能分析报告告诉你!