工业智能科技网站设计,大连模板建站系统,最新国际形势最新消息,百度2018旧版下载学习目标#xff1a;
每天2-3到简单sql#xff08;刷完即止#xff09;#xff0c;每天复习代码随想录上的题目3道算法#xff08;时间充足可以继续#xff09;#xff0c;背诵的八股的问题也在这里记录了
今日碎碎念#xff1a;
SQL有些题用到的知识感觉不会出现在…学习目标
每天2-3到简单sql刷完即止每天复习代码随想录上的题目3道算法时间充足可以继续背诵的八股的问题也在这里记录了
今日碎碎念
SQL有些题用到的知识感觉不会出现在面试中所以也不刷那些sql了
八股背了忘忘了背苦涩。 力扣刷题
SQL
力扣13271327. 列出指定时间段内所有的下单产品
解答思路 1本题首先得反应过来需要用到两张表共同的列因此就是要连接了而inner join内连接能处理掉两表之间非共有的数据使用product_id来作为连接条件即可剩下的就是根据题目写出条件以及对名字分组方便统计总数
# 首先要反应过来肯定得连接两表使用inner join内连接保证两表共有数据才显示using等价on
# 显然我们得保证日期在指定范围内可以使用模糊查询或者函数或者大于小于
# 最后得根据名字分好组然后才方便统计每个商品的总数
select Products.product_name,sum(Orders.unit) as unitfrom Products inner join Orders using(product_id)where year(Orders.order_date) 2020andmonth(Orders.order_date) 02group by Products.product_namehaving unit 100 力扣610610. 判断三角形
解答思路 1这道题觉得值得记录就是有个类似三元运算符的写法
# 这里可以用到之前的类似三元运算符的函数if(条件条件成立的结果不成立的结果)
select *,if(xyz and xzy and yzx,Yes,No) as trianglefrom Triangle 算法
力扣977977. 有序数组的平方
解答思路 1这里使用双指针来解决
class Solution {//简单的方法就说一下好了主要就是直接循环进行平方然后sort一下//这里编写的是O(n)的双指针方法//为什么可以用到双指针//关键在于数组是有序的非递减那么就表明对原数组进行平方之后会出现几个个现象//1中间小两边大//2最左最小最右最大//如果是第一种情况最左边的平方之后可能会大于最右边的public int[] sortedSquares(int[] nums) {//左右指针int left 0,right nums.length - 1;int leftVal 0,rightVal 0;int res[] new int[nums.length];int k res.length - 1;//开始循环找大小while(left right){leftVal nums[left] * nums[left];rightVal nums[right] * nums[right];if(leftVal rightVal){//左平方小于右平方就填右边平方到数组里面去res[k--] rightVal;right --;}else{res[k--] leftVal;left ;}}return res;}
} 力扣209209. 长度最小的子数组
解答思路 1这道题的解决思路也是比较显露的它题目就在提示让我们先考虑滑动窗口同时也要维护窗口的总和这里值得注意的是并不是for里面有while就是On^2了主要是看每一个元素被操作的次数这里主要是元素在窗口里面的被操作情况是进窗口和出窗口各自被操作一次而已
class Solution {public int minSubArrayLen(int target, int[] nums) {//窗口总和int sum 0;//记录到的符合条件的最小窗口长度int res Integer.MAX_VALUE;//窗口起始位置int left 0;for(int right 0;right nums.length;right){//计算窗口和sum nums[right];//窗口开始移动直到满足targetwhile(sum target){//判断是上一个结果小还是本次结果小res Math.min(res,right-left1);//缩减窗口直到不满足条件表示可以移动窗口了sum - nums[left];}}return res Integer.MAX_VALUE ? 0 : res;}
} 力扣203203. 移除链表元素
解答思路 1这种移除其实就像交换元素设置中间值来进行替换 2我习惯使用虚拟头节点大体思路就是维护两个指针一个指向前一个节点一个指向当前节点如果当前节点的值是val那么就将前一个节点的next指向当前节点的next就可以达成移除操作了
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {if(head null){return head;}//设置虚拟头节点ListNode tmp new ListNode();//将tmp链接到链表上去tmp.next head;//记录当前指针起点ListNode pre tmp;//记录下一个节点ListNode cur head;//如果下一个不为空while(cur ! null){//判断当前节点是否为指定valif(cur.val val){//是则移动pre.next cur.next;}else{//如果不是就替换即可pre cur;}//移动指针cur cur.next;}return tmp.next;}
} 八股
计算机网络计网的感觉也差不多了其余的有机会面试碰到再说后两天的八股还是这两天的内容背住先
TCP
1.TCP的三次握手中为什么是三次为什么不是两次四次
2.TCP的四次挥手中为什么是四次为什么不是三次
3.TCP的拥塞控制是怎么实现的
4.TCP流量控制和拥塞控制的区别
5.TCP如何实现流量控制 HTTP
1.HTTP和HTTPS有什么区别
2.Cookie和Session有什么区别