当前位置: 首页 > news >正文

Leetcode Top 100 Liked Questions(序号141~189)

​ 141. Linked List Cycle ​

题意:给你一个链表,判断链表有没有环

我的思路

两个指针,一个每次走两步,一个每次走一步,如果走两步的那个走到了NULL,那说明没有环,如果两个指针指向相等,说明有环

代码 Runtime7 ms Beats 91.63% Memory 8 MB Beats 67.57%

class Solution {
public:bool hasCycle(ListNode *head) {ListNode *p=head;ListNode *q=head;if(head==NULL||head->next==NULL)return 0;p=p->next;q=q->next->next;while(q!=NULL&&q!=p){p=p->next;if(q->next!=NULL)q=q->next->next;else q=q->next;}if(q==NULL)return 0;return 1;}
};

标答 简洁

原理是一样的 就是代码更简洁了

class Solution {
public:bool hasCycle(ListNode *head) {ListNode* slow=head;ListNode* fast=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;if(fast==slow)return true;}return false;}
};

142. Linked List Cycle II

题意:给一个链表,有环返回环的开始,没环返回NULL

我的思路

虽然想用快慢指针,但是不一定能返回环的开始位置,所以想了想还是用map把,第一个相同的map就是环的位置

代码 Runtime14 ms Beats 12.81% Memory 10.1 MB Beats 5.29%

class Solution {
public:ListNode *detectCycle(ListNode *head) {if(head==NULL)return NULL;unordered_map<ListNode *,int>mp;ListNode *q=head;while(q->next!=NULL){if(mp[q])return q;mp[q]++;q=q->next;}   return NULL;}
};

标答 快慢指针

如果头指针为空的话,返回空;定义慢指针和快指针;

如果快指针和快指针的next不为空(否则跳出循环),那么慢指针走一步步,快指针走走两步,如果快指针等于慢指针,跳出循环;

跳出循环后,如果快指针为空或者快指针的next为空,返回NULL

这时的环的大小是慢指针走过的路程数,slow指向head时,slow和head的距离是环的长度的倍数

详见下方公式

代码 Runtime 4 ms Beats 93.5% Memory 7.6 MB Beats 51.24%

class Solution {
public:ListNode *detectCycle(ListNode *head) {if(!head) return NULL;auto slow = head, fast = head;while(fast && fast->next) {slow = slow->next;fast = fast->next->next;if(slow == fast) break;}if(!fast || !fast->next) return NULL;slow = head;while(slow != fast) {slow = slow->next;fast = fast->next;}return slow;}
};

146. LRU Cache

题意:cache容量为size,如果不停地向cache中put(key,value),如果超出容量了,就会把最长时间问访问的删除;get函数是返回key的value,同时刷新最近访问

我的思路

我记得之前牛客做过?但是忘记了

put的时候,需要有list来控制先后,最近的刷新在链表的最前,所以超过容量的时候,list的表尾删掉,put加上的时候在最前面加上,本身就有的话,刷新;因为答案里输入的是一对,所以list的数据类型是pair

get的时候,要找到key对应的结点,这个时候要用map,map和list<int>::iterator

代码  Runtime 409 ms Beats 87.32% Memory 174 MB Beats 53.92%

class LRUCache {
public:int size;unordered_map<int, list<pair<int, int> >::iterator>mp;list< pair<int,int > > li;LRUCache(int capacity) {size=capacity;}int get(int key) {if(mp.count(key)>0){pair<int,int>tmp=*mp[key];li.erase(mp[key]);//get一次刷新一次li.push_front(tmp);mp[key]=li.begin();return tmp.second;}return -1;}void put(int key, int value) {pair<int,int> tmp={key,value};if(mp.count(key) > 0){//以前就有,把以前的删掉li.erase(mp[key]);}else if(li.size()==size){//以前没有,但是满了,把最前面的删掉auto lit=li.end();lit--;pair<int,int> del=*lit;//值li.pop_back();mp.erase(del.first);//现在没了}li.push_front(tmp);//新加入的放在最前面mp[key]=li.begin();}
};

标答 没仔细看

代码 vector Runtime346 ms Beats 98.88% Memory163.8 MB Beats 97.1%

class LRUCache {
public:queue<int> LRU;vector<int> usages = vector<int>(10001, 0);vector<int> kvp = vector<int>(10001, -1);int size = 0;int cap = 0;LRUCache(int capacity) {cap = capacity;}int get(int key) {if(kvp[key] != -1){LRU.push(key);usages[key]++;}return kvp[key];}void put(int key, int value) {if(size < cap || kvp[key] != -1){if(kvp[key] == -1) size++;LRU.push(key);usages[key]++;kvp[key] = value;return;}while(usages[LRU.front()] != 1){usages[LRU.front()]--;LRU.pop();}kvp[LRU.front()] = -1;usages[LRU.front()]--;LRU.pop();LRU.push(key);usages[key]++;kvp[key] = value;}
};

148. Sort List

题意:链表升序排序

我的思路

说要nlogn,想到的有快排和归并;翻了翻标答,居然超时了,看了看数据,原来是降序排序,好吧,那就按照归并做吧

【后来想了想,快排还要倒着走,确实不太适合单向链表】

归并就是先递归左边,之后递归右边,最后归并

数组我会,但是链表怎么做呢

标答

首先定义prev指针,快指针和慢指针,之后让慢指针到链表二分之一的位置,快指针在NULL之前,prev在slow指针的前面;之后prev->next=NULL,使他彻底变成两条指针

递归第一条链表和第二条链表,直到head==NULL或者head->next==NULL 返回head指针;

最后把这两个head指针的链表合起来,合并也是用递归合并;如果l1的值小于l2的值,合并(l1->next,l2)【因为要从小到大排序,所以要留下小的值,让后面的值去比较

代码 Runtime 127 ms Beats 99.16% Memory 53.2 MB Beats 79.49%

class Solution {
public:ListNode* sortList(ListNode* head) {if(head==NULL||head->next==NULL)return head;ListNode* prev=NULL;ListNode* slow=head;ListNode* fast=head;while(fast!=NULL&&fast->next!=NULL){prev=slow;slow=slow->next;fast=fast->next->next;}prev->next=NULL;ListNode* l1=sortList(head);ListNode* l2=sortList(slow);return merge(l1,l2);}ListNode* merge(ListNode* l1,ListNode* l2){//合并递归if(l1==NULL)return l2;if(l2==NULL)return l1;if(l1->val<l2->val){l1->next=merge(l1->next,l2);return l1;}else {l2->next=merge(l1,l2->next);return l2;}}
};

152. Maximum Product Subarray

题意:最大子段积

我的思路

动态规划?但是有负数欸;看提示,是前缀积?先来个O(n^2)

但是普通的前缀积不太行,因为有0;算了,现在个最暴力的O(n^2)----->TLE了

class Solution {
public:int maxProduct(vector<int>& nums) {ios::sync_with_stdio(false);cin.tie(0);int n=nums.size(),maxx=nums[0];if(n==1)return nums[0];for(int i=0;i<n;i++){int pro=1;for(int j=i;j<n;j++){pro=pro*nums[j];maxx=max(maxx,pro);}}return maxx;}
};

标答 动态规划

首先定义了min和max,如果这个数是负数,就把max和min交换一下,之后更新max和min和ans

代码 Runtime3 ms Beats 92.63% Memory13.8 MB Beats 23.8%

class Solution {
public:int maxProduct(vector<int>& nums) {int n=nums.size();int maxx=nums[0],minn=nums[0],ans=nums[0];for(int i=1;i<n;i++){if(nums[0]<0)swap(maxx,minn);minn=min(minn*nums[i],nums[i]);//和nums[i]作比较maxx=max(maxx*nums[i],nums[i]);//表示的是以i为右端点的最大or最小值ans=max(ans,maxx);}return ans;}
};

153. Find Minimum in Rotated Sorted Array

题意:数组被rotate了1到n次,以logn的时间复杂度返回最小的数字

我的思路

其实循环On也能 Runtime0 ms Beats 100% Memory10.1 MB Beat 93.66%

class Solution {
public:int findMin(vector<int>& nums) {int minn=5001;for(int i=0;i<nums.size();i++)minn=min(minn,nums[i]);return minn;}
};

但是logn的话,那就二分,如果用归并的想法,都切成2个2个的,最后返回最小的

但是这没有用到rotate的部分,也不知道是不是logn

好像不是【因为a=2,b=2,f(n)=1,所以复杂度为n】

Runtime0 ms Beats 100% Memory 10.1 MB Beats 93.66%

class Solution {
public:int fi(vector<int>& nums,int l,int r){if(l>=r)return nums[l];int mid=l+(r-l)/2;return min(fi(nums,l,mid),fi(nums,mid+1,r));}int findMin(vector<int>& nums) {int n=nums.size();return fi(nums,0,n-1);}
};

标答

因为题中的rotate是把数组分成两个部分,这两个部分交换的意思

例如 0 1 2 3 4 5 7--->3 4 5 7 0 1 2这样的纯交换,所以虽然看上去递归两次,其实只要递归一边

为什么这个是logn?

  • At each level, at least one side could be done in O(1).
  • T(N) = O(1) + T(N/2) = O(\log{N})

代码 Runtime0 ms Beats 100% Memory10.1 MB Beats 51.34% 

class Solution {
public:int fi(vector<int>& nums,int l,int r){if(l>=r)return nums[l];if(nums[l]<nums[r])return nums[l];int mid=l+(r-l)/2;return min(fi(nums,l,mid),fi(nums,mid+1,r));}int findMin(vector<int>& nums) {int n=nums.size();return fi(nums,0,n-1);}
};

155. Min Stack

 题意:建立一个栈,它有正常的栈都有的功能,就是多了一个getmin的函数,求当前剩下的数字中最小的那个

我的思路

如果是普通的栈的话stack和vector都可以,但是如何getmin?

先On试试

代码 Runtime 200 ms Beats 5.2% Memory 16.4 MB Beats 25.58%

class MinStack {
public:vector<long long>v;MinStack() {}void push(int val) {v.push_back(val);}void pop() {v.pop_back();}int top() {return v[v.size()-1];}int getMin() {long long minn=-9999999999999999999;for(int i=0;i<v.size();i++)minn=min(minn,v[i]);return minn;}
};

标答 单调栈

创建两个栈,一个是正常的栈,一个是专门存放最小值的栈

为什么不会存在pop正常栈的值(第二小的值),再pop正常栈的值(第一小的值),再getmin为什么不会出现第二小的值?

因为存放最小值的栈是单调栈,只会存放当前数的右边比它更小的值

代码 Runtime17 ms Beats 85.63% Memory16.1 MB Beats 92.4%

class MinStack {
public:stack<int> st;stack<int> mi;void push(int val) {st.push(val);if(mi.empty()||mi.top()>=val)mi.push(val);//注意这里是等于}void pop() {if(mi.top()==st.top())mi.pop();st.pop();}int top() {return st.top();}int getMin() {return mi.top();}
};

160. Intersection of Two Linked Lists

 题意:返回两条链表的交点,如果没有交点返回NULL

我的思路

用map做

代码 Runtime 67 ms Beats 15.53% Memory 21.2 MB Beats 5.5%

class Solution {
public:map<ListNode *,bool>mp;ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if(headA==NULL||headB==NULL)return NULL;ListNode *p=headA;ListNode *q=headB;while(p!=NULL&&q!=NULL){if(mp[p])return p;else mp[p]=1;if(mp[q])return q;else mp[q]=1;p=p->next;q=q->next;}while(p!=NULL){if(mp[p])return p;else mp[p]=1;p=p->next;}while(q!=NULL){if(mp[q])return q;else mp[q]=1;q=q->next;}return NULL;}
};

标答

设p是headA,q是headB,两个指针p和q一起向前走,当有一个指针(假设是p)指向空的时候,这个指针p来到q的起始位置,当q指向空的时候,q来到p的起始位置;这时,两者的起始到空的位置都是一样的了

一般来说,位置交换只要双方来一次就可以完成了

代码 Runtime 32 ms Beats 93.83% Memory14.6 MB Beats 33.15%

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *p=headA;ListNode *q=headB;while(p!=q){if(p==NULL)p=headB;else p=p->next;if(q==NULL)q=headA;else q=q->next;}return p;}
};

169. Majority Element

 题意:给定一个数组,返回众数

我的思路

用map

好吧,看了标答才注意到,这样只要大于n/2就可以return了

The majority element is the element that appears more than ⌊n / 2⌋ times.

代码  Runtime12 ms Beats 81.64% Memory19.8 MB Beats 6.3%

class Solution {
public:int majorityElement(vector<int>& nums) {ios::sync_with_stdio(false);cin.tie(0);pair<int,int>maxx={0,0}; map<int,int>mp;for(int i=0;i<nums.size();i++){mp[nums[i]]++;if(mp[nums[i]]>maxx.second)maxx={nums[i],mp[nums[i]]};}return maxx.first;}
};

标答 摩尔投票法

因为要求的是绝对众数,所以可以用摩尔投票法,简而言之就是初始化can为第一个被提名人,cnt为票数,当有一个人被提名且不是can,那么cnt--;因为绝对众数,所以绝对众数的票全部给其他人抵消了还会剩下多的

代码 Runtime 5 ms Beats 98.86% Memory19.9 MB Beats 6.3%

class Solution {
public:int majorityElement(vector<int>& nums) {ios::sync_with_stdio(0);int can=0,cnt=0;int n=nums.size();for(int i=0;i<n;i++){if(cnt==0) can=nums[i];if(can==nums[i])cnt++;else cnt--;}return can;}
};

拓展摩尔投票

算法学习笔记(78): 摩尔投票 - 知乎 (zhihu.com)

189. Rotate Array

题意:

  • Try to come up with as many solutions as you can. There are at least three different ways to solve this problem.
  • Could you do it in-place with O(1) extra space?

我的思路

重新开一个空间

代码 Runtime19 ms Beats 90.37% Memory26.4 MB Beats 5.92%

class Solution {
public:void rotate(vector<int>& nums, int k) {vector<int> v;int n=nums.size();k=k%n;for(int i=0;i<k;i++)v.push_back(nums[n-k+i]);for(int i=0;i<n-k;i++)v.push_back(nums[i]);nums=v;}
};

标答

只能说其实如此

eg 1 3 4 5 6 8 9,k=5

第一次reverse:3 1 4 5 6 8 9

第二次reverse:3 1 9 8 6 5 4

第三次reverse:4 5 6 8 9 1 3

代码 Runtime18 ms Beats 92.46% Memory 25 MB Beats 65.31%

class Solution {
public:void rotate(vector<int>& nums, int k) {int n=nums.size(); k=k%n;reverse(nums.begin(),nums.end()-k);reverse(nums.begin()+n-k,nums.end());reverse(nums.begin(),nums.end());}
};

相关文章:

Leetcode Top 100 Liked Questions(序号141~189)

​ 141. Linked List Cycle ​ 题意&#xff1a;给你一个链表&#xff0c;判断链表有没有环 我的思路 两个指针&#xff0c;一个每次走两步&#xff0c;一个每次走一步&#xff0c;如果走两步的那个走到了NULL&#xff0c;那说明没有环&#xff0c;如果两个指针指向相等&…...

网络编程day3-FTP客户端项目

FTP协议 FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接&#xff0c;一条是数据连接&#xff0c;用于数据传送&#xff1b;另一条是控制连接&#xff0c;用于传送控制信息&#xff08;命令和响应&#xff09;&…...

音频母带制作::AAMS V4.0 Crack

自动音频母带制作简介。 使用 AAMS V4 让您的音乐听起来很美妙&#xff01; 作为从事音乐工作的音乐家&#xff0c;您在向公众发布材料时需要尽可能最好的声音&#xff0c;而为所有音频扬声器系统提供良好的商业声音是一项困难且耗时的任务。AI掌握的力量&#xff01; 掌控您…...

【SpringCloud】SpringCloud整合openFeign

文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远…...

成集云 | 飞书审批同步金蝶云星空 | 解决方案

源系统成集云目标系统 方案介绍 飞书员工报销审批通过后&#xff0c;审批单据内容和审批状态实时同步金蝶云星空 飞书是字节跳动于2016年自研的新一代一站式协作平台&#xff0c;将即时沟通、日历、云文档、云盘和工作台深度整合&#xff0c;通过开放兼容的平台&#xff0c;…...

【计算机组成 课程笔记】3.2 算数运算和逻辑运算的硬件实现

课程链接&#xff1a; 计算机组成_北京大学_中国大学MOOC(慕课) 3 - 2 - 302-门电路的基本原理&#xff08;11-39--&#xff09;_哔哩哔哩_bilibili 现代计算机的CPU和其他很多功能部件都是基于晶体管的集成电路&#xff0c;想要了解计算机组成的基本原理&#xff0c;还是需要有…...

python元组的不可变性和应用场景

Python元组是一种不可变的数据类型&#xff0c;也就是说一旦创建后&#xff0c;其元素无法被修改、添加或删除。元组使用圆括号来表示&#xff0c;元素之间使用逗号进行分隔。 以下是创建和访问元组的方法和语法&#xff1a; 创建元组&#xff1a; 使用圆括号直接创建&#xff…...

配置化开发的核心设计 - Schema

前端配置化SchemaServerless FaaS BaaS useImperativeHandle() react-helmet 参考链接 schema进入...

HTTP协议概述

HTTP 协议定义 HTTP协议&#xff0c;直译为超文本传输协议&#xff0c;是一种用于分布式、协作、超媒体的信息系统的应用协议。HTTP协议是万维网数据通信的基础。HTTP协议在客户端-服务器计算模型中充当请求-响应协议。客户端向服务器提交HTTP请求消息。服务器提供HTML文件和其…...

fastjson2 打开 AutoType

1. 功能简介 FASTJSON支持AutoType功能&#xff0c;这个功能在序列化的JSON字符串中带上类型信息&#xff0c;在反序列化时&#xff0c;不需要传入类型&#xff0c;实现自动类型识别。 2. AutoType安全机制介绍 必须显式打开才能使用。和fastjson 1.x不一样&#xff0c;fast…...

封装(个人学习笔记黑马学习)

1、格式 #include <iostream> using namespace std;const double PI 3.14;//设计一个圆类&#xff0c;求圆的周长 class Circle {//访问权限//公共权限 public://属性//半径int m_r;//行为//获取圆的周长double calculateZC() {return 2 * PI * m_r;} };int main() {//通…...

PyTorch 模型性能分析和优化 - 第 3 部分

这[1]是关于使用 PyTorch Profiler 和 TensorBoard 分析和优化 PyTorch 模型主题的系列文章的第三部分。我们的目的是强调基于 GPU 的训练工作负载的性能分析和优化的好处及其对训练速度和成本的潜在影响。特别是&#xff0c;我们希望向所有机器学习开发人员展示 PyTorch Profi…...

【力扣每日一题】2023.9.1 买钢笔和铅笔的方案数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们三个数&#xff0c;一个是我们拥有的钱&#xff0c;一个是钢笔的价格&#xff0c;另一个是铅笔的价格。 问我们一共有几种买笔…...

实现不同局域网间的文件共享和端口映射,使用Python自带的HTTP服务

文章目录 1. 前言2. 本地文件服务器搭建2.1 python的安装和设置2.2 cpolar的安装和注册 3. 本地文件服务器的发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用&#xff0c;不仅在商业和办公场景有广泛的应用…...

Kubernetes技术--k8s核心技术Pod

(1).概述 Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型。 k8s不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成。 一个pod中的容器共享网络命名空间。 Pod是一个短暂存在的。 (2).为什么k8s中最小单元是…...

基于Springboot实现的Echarts图表

概述 ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&#xff08;IE8/9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0c;Safari等&#xff09;&…...

adb server version (41) doesn‘t match this client (39)

异常&#xff1a; adb server version (41) doesnt match this client (39); killing... ADB server didnt ACK安装ADB后&#xff1a;查看版本 $ adb version Android Debug Bridge version 1.0.39 Version 1:8.1.1-1r23-5.4-1eagle Installed as /usr/lib/android-sdk/platf…...

B080-RabbitMQ

目录 RabbitMQ认识概念使用场景优点AMQP协议JMS RabbitMQ安装安装elang安装RabbitMQ安装管理插件登录RabbitMQ消息队列的工作流程 RabbitMQ常用模型HelloWorld-基本消息模型生产者发送消息导包获取链接工具类消息的生产者 消费者消费消息模拟消费者手动签收消息 Work QueuesSen…...

关于岛屿的三道leetcode原题:岛屿周长、岛屿数量、统计子岛屿

题1&#xff1a;岛屿周长 给定一个 row x col 的二维网格地图 grid &#xff0c;其中&#xff1a;gridi 1 表示陆地&#xff0c; gridi 0 表示水域。 网格中的格子 水平和垂直 方向相连&#xff08;对角线方向不相连&#xff09;。整个网格被水完全包围&#xff0c;但其中恰…...

lintcode 1081 · 贴纸拼单词【hard 递归+记忆化搜索才能通过】

题目 https://www.lintcode.com/problem/1081/ 给出N种不同类型的贴纸。 每个贴纸上都写有一个小写英文单词。 通过裁剪贴纸上的所有字母并重排序来拼出字符串target。 每种贴纸可以使用多次&#xff0c;假定每种贴纸数量无限。 拼出target最少需要多少张贴纸&#xff1f;如果…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好&#xff0c;我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题&#xff0c;统一使用 二重复合函数&#xff1a; z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式&#xff08;偏导…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...