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

力扣面试150题--基本计算器

Day 31

题目描述

在这里插入图片描述

思路

逆波兰表达式扩展
初次思路:此题我遇到了几个难点

  1. 如何处理()
  2. 如何处理-1和2-1中的负数还是减法问题 1-(-(1+2))
  3. 如何处理多余的空格

我的做法如下:根据前面逆波兰表达式求值,可以考虑将这个正常的表达式先转化为逆波兰表达式,再用逆波兰表达式进行求值。具体如下:

  1. 创建num字符串,用于取出表达式中的数字
  2. 创建一个list列表,用来存放转化后的逆波兰表达式
  3. 创建一个栈stack来暂时存放符号
  4. 从前向后遍历表达式
  5. 如果取出来的字符为+,将+压入栈stack
  6. 如果取出来的字符为(,将( 压入栈stack
  7. 如果取出的字符为-,这里比较复杂,分为以下两段解释
  8. 如果此时栈中不为空,可能会出现(-的情况,需要向前回溯,找到第一个不为’ ‘的字符a,同时也需要从-向后遍历,找到一个不是’ ‘的字符b,这两个字符要拿来比较,如果a==‘(’,b='(‘,说明出现的情况为(-(的情况,此时将0存入逆波兰表达式,再将-压入栈,如果出现a==‘(’,b!=‘(’,那么就是(-常数,这里肯定就是负数(因为除了(不能-与任何其他符号连续出现),如果不是以上两种情况,就直接将-压入栈,这是正常的减法。
  9. 如果此时-是第一个出现的符号,此时需要向后遍历,后面出现的是不是(,如果为(,直接将-压入栈(这里后面会处理为0-(),如果其后不为(,说明就是负数
  10. 如果取出的字符为),也要分为两个情况
  11. 如果此时栈非空,并且栈顶为(,直接弹出,连续弹出到为(或者栈为空
  12. 如果此时栈非空,并且栈顶不为(,直接弹出()中的所有符号
  13. 如果取出的字符为’ ‘,不处理直接跳过。
  14. 如果取出来的是数字,使用num拼接,如果下一个不为数字,说明数字拼接完成,将它加入list,同时取出栈顶符号加入表达式(栈非空并且栈顶不为( ),弹出栈顶元素,将num清空;如果下一个还是数字,就不管。
  15. 使用逆波兰求值,这里注意如果取出符号为-,此时数字栈中为空,就变成0-栈顶(原因在于上面的-)
    注意,这里11,12,为什么需要特殊处理这步
    原因在于一个样例:(7)-(0)+(4)
    如果我们只弹出到(,会出现这种情况
    7 0 4 + -
    正确的结果应该是
    7 0 - 4 +
    为什么会出现这种情况,原因在于,-一直被压在栈底,第二个)只取到(就结束了。
class Solution {public int calculate(String s) {String num="";//用来存放从表达式中取出的数字ArrayList<String> list = new ArrayList<>();//存放逆波兰表达式Stack<Character> stack = new Stack<>();//用来暂存符号Stack<Integer> nums = new Stack<>();//用于逆波兰表达式存放数字for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == '+') {//压入栈即可stack.push(c);}else if (c == '-') {if(!stack.isEmpty()){//栈非空int j=i-1;while(s.charAt(j)==' '){//向前遍历找到第一个非空格字符j--;}while (s.charAt(i+1)==' '){//向后遍历找到第一个非空格字符i++;//这里都是空格,直接修改i也没关系}if(s.charAt(j)=='('&&s.charAt(i+1)!='('){//(-常数,说明为负数num=num+c;//负数}else if(s.charAt(j)=='('&&s.charAt(i+1)=='('){//(-(list.add("0");//变成(0-(stack.push(c);//变成减法,-压入栈}else{stack.push(c);//说明就是正常的减法}}else if(i-1<0){//-出现在表达式的第一个while (s.charAt(i+1)==' '){//向后遍历找到第一个非空格字符i++;}if(s.charAt(i+1)=='('){//-( 直接压入栈,后面逆波兰计算时处理stack.push(c);}else{num=num+c;//说明为负数,因为除了(,不可能出现-加上任何符号}}else{stack.push(c);//说明就是正常的减法}}else if (c == '(') {//压入栈即可stack.push(c);}else if (c == ')') {if(!stack.isEmpty()&&stack.peek()=='('){//处理特殊情况(7)-(0)+(4)stack.pop();if(!stack.isEmpty()&&stack.peek()!='('){list.add(String.valueOf(stack.peek()));stack.pop();}}else{while(!stack.isEmpty()&&stack.peek()!='('){//。取出括号内部所有符号list.add(String.valueOf(stack.peek()));stack.pop();}stack.pop();}}else if (c == ' ') {//不处理}else {num=num+c;//拼接数字if(i+1>s.length()-1||s.charAt(i+1)=='+'||s.charAt(i+1)=='-'||s.charAt(i+1)=='('||s.charAt(i+1)==')'||s.charAt(i+1)==' '){//下一个不是数字,说明数字已经拼接完成list.add(num);//加入表达式num="";//清空numif(!stack.isEmpty()&&stack.peek()!='('){//将栈顶的符号加入表达式list.add(String.valueOf(stack.peek()));stack.pop();}}}}//这里以下就是逆波兰求值int a,b;for (int i = 0; i < list.size(); i++) {//从前向后遍历表达式if(list.get(i).equals("+")){//如果取出的时加法 a=nums.peek();nums.pop();b=nums.peek();nums.pop();nums.push(a+b);}else if(list.get(i).equals("-")){//如果取出的是减法a=nums.peek();nums.pop();if(nums.isEmpty()){//特殊处理-出现在表达式的第一个b=0;}else{b=nums.peek();nums.pop();}nums.push(b-a);}else{//如果出现的是数字,就压入数字栈中nums.push(Integer.parseInt(list.get(i)));}}return nums.peek();//结果就在数字栈的栈顶}
}

问题:代码阅读性差,并且时间复杂度比较高
在这里插入图片描述

题解思路厉害
括号展开 + 栈:具体思路就是展开所有的括号,由于只有±两个运算符号,它们拆开括号的效果如下,比如1+(1+2)=1+1+2;1-(1+2)=1-1-2,所以可以使用1和-1来表示加和减,具体做法如下

  1. 维护一个栈,初始将1压入栈,用来处理括号,(原因是默认后续符号不用翻转,此时规定了加为1,减为-1),创建ret保留最后结果,初始为0,设置一个sign初始为1,用来获取此时的符号
  2. 从前向后遍历字符串
  3. 如果出现’ ‘跳过不处理
  4. 如果出现+,获取栈顶的元素
  5. 如果出现-,获取栈顶元素*-1
  6. 如果出现括号(,就根据其前面的sign是1还是-1,将sign压入栈(此时如果sign为-1,就变成加为-1,减为1,原因在于出现了-()的情况)
  7. 如果出现括号),就弹出栈顶元素,此时就是恢复状态
  8. 如果出现为数字,就先向后找到所有数字,组合num,ret+=num*sign
  9. 最后返回ret
class Solution {public int calculate(String s) {Stack<Integer> kuo = new Stack<Integer>();//处理括号kuo.push(1);//初始设置为加为1 减为-1int sign = 1;//标记之前出现的符号int res = 0;//存放结果int i = 0;while (i < s.length()) {//遍历字符串if (s.charAt(i) == ' ') {//跳过i++;} else if (s.charAt(i) == '+') {//取出栈顶元素作为sign(如果此时为-(+),取出的sign=-1)sign = kuo.peek();i++;} else if (s.charAt(i) == '-') {//取出栈顶元素作为sign(如果此时为-(-),取出的sign=1)sign = kuo.peek()*-1;i++;} else if (s.charAt(i) == '(') {//根据sign即括号前的最后一个运算符,来决定括号内的加减法是1还是-1kuo.push(sign);i++;} else if (s.charAt(i) == ')') {//弹出之前括号内的环境,恢复为括号外的环境kuo.pop();i++;} else {long num = 0;while (i < s.length() && Character.isDigit(s.charAt(i))) {//找到所有数字字符拼接num = num * 10 + s.charAt(i) - '0';i++;}res += sign * num;//计算结果}}return res;}
}

相关文章:

力扣面试150题--基本计算器

Day 31 题目描述 思路 &#xff08;逆波兰表达式扩展&#xff09; 初次思路&#xff1a;此题我遇到了几个难点 如何处理&#xff08;&#xff09;如何处理-1和2-1中的负数还是减法问题 1-&#xff08;-&#xff08;12&#xff09;&#xff09;如何处理多余的空格 我的做法如…...

各种各样的bug合集

一、连不上数据库db 1.可能是密码一大包东西不对&#xff1b; 2.可能是里面某个port和数据库不一样&#xff08;针对于修改了数据库但是连不上的情况&#xff09;&#xff1b; 3.可能是git代码没拉对&#xff0c;再拉一下代码。❤ 二、没有这个包 可能是可以#注释掉。❤ …...

【25软考网工】第三章(3)虚拟局域网VLAN

一、虚拟局域网VLAN 1. VLAN基础 定义&#xff1a;根据管理功能、组织机构或应用类型对交换局域网进行分段而形成的逻辑网络。例如将大型网络划分为多个VLAN&#xff08;如VLAN1-4&#xff09;。 优势&#xff1a; 管理便利&#xff1a;便于对不同部门或功能进行分组管理安全隔…...

SFINAE(Substitution Failure Is Not An Error)

C 中的 SFINAE&#xff08;替换失败并非错误&#xff09; SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;是 C 模板元编程的核心机制之一&#xff0c;允许在编译时根据类型特性选择不同的模板实现。以下通过代码示例和底层原理&#xff0c;逐步解析 SFI…...

学习记录:DAY17

我的学习日志&#xff1a;前端开发练习 前言 只想畏缩在自己的床上&#xff0c;什么也不想干&#x1f630; 我觉得有必要调整一下复习方针&#xff0c;不然容易白学。 我确实不太爱复习的人&#xff0c;尽量每天抽出时间来复习昨天的内容&#xff0c;周末总体复习一下一个星期…...

LibrePhotos本地部署打造个人云相册安全存储和分享家庭照片(1)

文章目录 前言1.关于LibrePhotos2.本地部署LibrePhotos3.LibrePhotos简单使用4. 安装内网穿透5.配置LibrePhotos公网地址6. 配置固定公网地址 前言 手机里塞满了珍贵回忆&#xff0c;却担心一不小心就被偷看&#xff1f;别怕&#xff0c;今天我就教你一个绝招——使用LibrePho…...

Android插拔U盘导致黑屏问题排查

问题现象&#xff1a; 车机大屏偶先插拔带音乐的U盘&#xff0c;导致车机系统短暂黑屏的情况。 日志中可以看到vold进程unmount了两次分区&#xff0c;一次是U盘分区&#xff0c;一次是/storage/emulated/0分区&#xff1a; I vold : Start killProcesses: /mnt/media_rw/…...

Android Build Variants(构建变体)详解

Android Build Variants&#xff08;构建变体&#xff09;是 Android 开发中用于生成不同版本应用程序的一种机制。它允许开发者根据不同的需求&#xff0c;如不同的应用市场、不同的功能模块、不同的环境配置等&#xff0c;从同一个代码库中生成多个不同的 APK。 组成部分 B…...

看一看 中间件Middleware

中间件&#xff08;Middleware&#xff09;是介于操作系统与应用程序之间的一层软件 它为分布式应用程序提供了统一的通信、数据交换、服务调用、消息传递等能力。 它的作用就像“胶水”&#xff0c;连接各个系统组件。 文章目录 消息队列缓存中间件数据库中间件服务注册与发现…...

ai人才需要掌握什么

在人工智能(AI)技术重塑全球产业格局的今天,AI人才的核心竞争力已超越单一技术维度,演变为“技术深度+人文广度+伦理自觉”的三维能力模型。本文将从技术能力体系、跨学科思维、伦理与治理三个层面,解析AI人才的核心能力框架,并针对技术局限性提出系统性应对策略。 一、…...

‌RISC-V低功耗MCU动态时钟门控技术详解

我来分享一下RISC-V核低功耗MCU的动态时钟门控技术实现&#xff1a; 这款MCU通过硬件级时钟门控电路实现了模块级的功耗管理。当外设&#xff08;如UART、SPI&#xff09;处于闲置状态时&#xff0c;系统会自动切断其时钟信号&#xff0c;减少无效翻转功耗。同时支持多电压域协…...

第十天 Shader编程:编写简单表面着色器 Addressable资源管理系统 DOTS(面向数据技术栈)入门

前言 作为Unity初学者&#xff0c;在实现复杂场景时经常会遇到性能瓶颈。本文将带你通过四个关键技术的实战学习&#xff0c;掌握现代Unity开发的核心优化方案&#xff1a; Shader编程 - 编写表面着色器控制物体渲染Addressable系统 - 实现高效资源管理DOTS技术栈 - 解锁百万…...

把dll模块注入到游戏进程的方法_插APC注入

一、概述 APC是异步过程调用,系统创建线程的时候会为线程创建一个APC队列,当线程调用SleepEx,WaitSingleObjectEx等函数时,并把线程状态被设置为可提醒状态时,线程并不会睡眠,而是检查APC队列是否为空,如果不为空,转去执行APC队列中的每一项,因此给目标进程中的线程插…...

【C++】内存管理:内存划分、动态内存管理(new、delete用法)

文章目录 一、C/C中的内存划分二、C语言中动态内存管理方式三、C中动态内存管理方式1、new、delete基本用法(1)、内置类型(2)、自定义类型 2、operator new与operator delete函数3、new和delete的实现原理&#xff08;1&#xff09;内置类型&#xff08;2&#xff09;自定义类型…...

【k8s】KubeProxy 的三种工作模式——Userspace、iptables 、 IPVS

在 Kubernetes 集群中&#xff0c;KubeProxy 是实现 Service 的网络代理和负载均衡功能的关键组件。它支持三种工作模式&#xff1a;Userspace 模式、iptables 模式和 IPVS 模式。每种模式都有其特点和适用场景&#xff0c;以下是详细介绍&#xff1a; Userspace 模式 工作原…...

密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介

密码学中的哈希函数、哈希碰撞、抗碰撞性&#xff08;collision resistance&#xff09;以及比特币中使用的 SHA-256 的简明介绍&#xff1a; &#x1f9e9; 一、哈希函数&#xff08;Hash Function&#xff09; 定义&#xff1a; 哈希函数是一种将任意长度的输入&#xff08;…...

通过监督微调(SFT)提升AI Agent效果的完整指南

一、SFT技术深度剖析 1.1 核心概念 监督微调&#xff08;Supervised Fine-Tuning&#xff09;是在大规模预训练语言模型&#xff08;如LLaMA、GPT系列&#xff09;的基础上&#xff0c;使用特定任务标注数据进行二次训练的过程。其本质是通过有监督学习调整模型参数&#xff…...

TCP基础题:音乐播放列表管理系统

需求描述 服务器端 创建一个 TCP 服务器&#xff0c;监听本地的 9999 端口&#xff0c;支持多个客户端连接。维护一个音乐播放列表&#xff0c;每个音乐条目包含歌曲名称、歌手、时长等信息。能够处理客户端的以下请求&#xff1a; 添加音乐到播放列表&#xff1a;接收客户端发…...

碰一碰发视频源码文案功能,支持OEM

在数字化营销与内容传播领域&#xff0c;碰一碰发视频文案功能凭借 NFC 技术的便捷性&#xff0c;实现了视频与文案的快速传递。本文将围绕该功能的开发流程&#xff0c;从需求分析、技术架构设计到核心功能实现&#xff0c;详细解析其开发要点&#xff0c;为开发者提供实践参考…...

如何在 Vue 3 中实现一个自定义的 `v-html` 组件

引言 在 Vue.js 中&#xff0c;v-html 是一个非常有用的指令&#xff0c;用于将 HTML 字符串渲染到元素中。然而&#xff0c;由于它直接插入 HTML 内容&#xff0c;存在潜在的安全风险&#xff08;如 XSS 攻击&#xff09;。因此&#xff0c;了解其工作原理并实现一个安全的替…...

差分对的返回电流-信号完整性分析

差分对的返回电流: 单端线的返回电流集中在参考平面&#xff0c;差分对的返回电流是怎样分布的?有一种观点认为&#xff0c;对于差分对这种耦合传输结构&#xff0c;其中一条走线是另一条走线的返回路径。甚至更进一步得出差分对不需要参考平面的结论。是否真的如此?要想了解…...

html单页业务介绍源码

源码介绍 html单页业务介绍源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码...

IDEA导入并启动若依项目步骤(SpringBoot+Vue3)

1.下载后端项目 项目地址&#xff1a;https://gitee.com/y_project/RuoYi-Vue 复制命令&#xff0c;将项目克隆到本地 git clone gitgitee.com:y_project/RuoYi-Vue.git使用IDEA打开&#xff08;会有点慢&#xff0c;耐心等待&#xff09;&#xff0c;打开后如下 2.Mysql导…...

零基础上手Python数据分析 (22)案例实战]之利用 Matplotlib Seaborn 进行电商销售数据可视化分析

写在前面 —— 图表为刃,洞察先行!综合运用 Pandas、Matplotlib 与 Seaborn,点亮数据价值 本篇通过一个完整的案例实战,体验如何将数据分析与数据可视化紧密结合,让冰冷的数据转化为生动、直观、富有洞察力的视觉故事! 案例目标: 本篇博客将延续我们在第 17 篇案例中…...

图像预处理-霍夫变换

一.概念 霍夫变换是图像处理的一种技术&#xff0c;主要用于检测图像中的直线、圆等几何形状。基本思想就是将图像空间&#xff08;直角坐标系或极坐标系&#xff09;中的点映射到(霍夫空间)参数空间中&#xff0c;通过在参数空间中寻找累计最大值实现对特定形状的检测。 接下…...

逐步了解蓝牙 LE 配对(物联网网络安全)

配对是蓝牙 LE 中的一个重要概念。让我们来了解一下蓝牙 LE 配对的基础知识,概述 LE 设备如何在可信设备之间安全地共享密钥。 在之前的一篇文章]中,我们讨论了蓝牙 LE 的安全密钥。我们了解到,蓝牙 LE 设备可以创建并共享三个不同的安全密钥:一个用于数据加密,一个用于创…...

嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进

一、什么是嵌入模型&#xff1f; 嵌入模型&#xff08;Embedding Models&#xff09; 是一种将高维离散数据&#xff08;如文本、图像&#xff09;转换为低维连续向量表示的技术。这些向量能够反映数据的语义关系&#xff0c;使得“语义相近的实体在向量空间中距离更近”。例如…...

解析塔能科技:绿色低碳智慧节能一站式破局之匙

在能源问题日益凸显的当下&#xff0c;绿色低碳、高效节能成为全球发展的重要课题。对各类节能方案进行深入剖析后&#xff0c;可以发现塔能科技的绿色低碳智慧节能一站式解决方案极具创新性与实用性&#xff0c;切实为众多行业面临的能源困境提供了有效解决路径。 直面行业痛点…...

el-menu箭头改为右下

问&#xff1a; el-menu箭头改为右下 回答&#xff1a; :deep(.el-menu){.el-sub-menu .el-sub-menu__icon-arrow{transition: transform 0.3stransform: rotateZ(-90deg) !important;}/* 展开状态&#xff1a;箭头向下 */.el-sub-menu.is-opened .el-sub-menu__icon-arrow,…...

[特殊字符][特殊字符] HarmonyOS相关实现原理聊聊![特殊字符][特殊字符]

Hey小伙伴们~ 今天咱们来聊聊HarmonyOS的实现原理吧&#xff01;&#x1f914;&#x1f4a1; 虽然直接看源代码是最直接的方式&#xff0c;但是OpenHarmony项目的开源进度有点让人捉急呢… 不过没关系&#xff0c;我们可以通过已经开放的SDK、IDE、开发示例和编译产物来一探究竟…...

RTSP播放器实现回调RGB|YUV给视觉算法,然后二次编码推送到RTMP服务

引言 在本文中&#xff0c;我们将介绍如何基于大牛直播SDK构建一个功能强大的RTSP|RTMP播放器&#xff0c;该播放器利用自定义SDK解码视频、处理RGB帧&#xff0c;并将其推送到RTMP流中进行直播。这个解决方案非常适合需要在实时视频流中集成视觉算法的场景&#xff0c;在处理…...

补题【Darkness+Different Billing+Dice Game】

文章目录 1.Darkness2.Different Billing3.Dice Game 1.Darkness 题目来源&#xff1a;Darkness I 这题不难想&#xff0c;通过作图我们发现 当nm时直接取对角线就好 当n!m时&#xff0c;取m,n的最小值&#xff0c;那么最小值的这个正方形都可以被填为黑色&#xff0c;剩下的…...

卷积神经网络:视觉炼金术士的数学魔法

&#x1f3ae; “你以为《赛博朋克2077》的夜之城是画出来的&#xff1f;不&#xff0c;是卷积神经网络’卷’出来的&#xff01;” &#x1f3ae; 一、卷积&#xff1a;像素世界的连连看大师 想象你拿着一张《蒙娜丽莎》的拼图——卷积核就像你手中的拼图碎片&#xff0c;在画…...

Python:简介,Python解释器安装,第一个Python程序,开发环境(PyCharm安装和配置、Sublime安装和配置)

目录 Python简介 Python解释器的安装&#xff08;Windows&#xff09; 下载和安装Python安装包&#xff08;解释器&#xff09; 验证Python安装情况 第一个Python程序 单行运行 多行运行 Python开发环境&#xff08;安装和配置PyCharm工具&#xff09; 安装PyCharm Py…...

CE第二次作业

实验要求&#xff1a; 1.配置ssh实现A&#xff0c;B主机互相免密登录 2.配置nginx服务&#xff0c;通过多ip区分多网站 一&#xff0c;配置ssh实现A&#xff0c;B主机互相免密登录 步骤 在主机 A 上生成 SSH 密钥对。把主机 A 的公钥复制到主机 B。在主机 B 上重复上述步骤…...

【阿里云大模型高级工程师ACP习题集】2.4 自动化评测答疑机器人的表现(⭐️⭐️⭐️ 重点章节!!!)

习题集: 【单选题】在使用Ragas评估RAG应用时,Answer Correctness指标计算中,语义相似度是通过以下哪种方式得到的?( ) A. 大模型直接判断 B. 计算文本向量的余弦相似度 C. 对比文本词汇重合度 D. 统计文本字数差异 【多选题】当Context recall指标得分较低时,可采取的优…...

多头注意力

Multi-Head Attention 论文地址 https://arxiv.org/pdf/1706.03762 多头注意力介绍 多头注意力是Transformer模型的关键创新&#xff0c;通过并行执行多个独立的注意力计算单元&#xff0c;使模型能够同时关注来自不同表示子空间的信息。每个注意力头学习不同的语义特征&#x…...

【leetcode100】目标和

1、题目描述 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 &#xff0c;在 1 之前添加 - …...

动态哈希映射深度指南:从基础到高阶实现与优化

哈希表是计算机科学中最高效的数据结构之一&#xff0c;而动态哈希映射通过智能扩容机制&#xff0c;在实时系统中展现出极强的适应性。本文将深入探讨其实现细节&#xff0c;结合主流框架源码解析&#xff0c;并给出可落地的性能优化方案。 一、动态哈希的数学本质 1. 哈希函…...

leetcode 2799. 统计完全子数组的数目 中等

给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件&#xff0c;则称之为 完全子数组 &#xff1a; 子数组中 不同 元素的数目等于整个数组不同元素的数目。 返回数组中 完全子数组 的数目。 子数组 是数组中的一个连续非空序列。 示例 1&#xff…...

使用RabbitMQ实现判题功能

这次主要选用RabbitMQ消息队列来对判题服务和题目服务解耦&#xff0c;题目服务只需要向消息队列发送消息&#xff0c;判题服务从消息队列中取信息去执行判题&#xff0c;然后异步更新数据库即可。 五一宝宝请快点跑~~~~~ 先回顾一下RabbitMQ &#xff08;1&#xff09;引入依…...

无过拟合的记忆:分析大语言模型的训练动态

Kushal Tirumala⇤ Aram H. Markosyan⇤ Luke Zettlemoyer Armen Aghajanyan Meta AI 研究 {ktirumala,amarkos,lsz,armenag}fb.com 原文链接&#xff1a;[2210.09262] Physics-Driven Convolutional Autoencoder Approach for CFD Data Compressions 摘要 尽管超大语言模型…...

【Java面试笔记:进阶】16.synchronized底层如何实现?什么是锁的升级、降级?

在 Java 中,synchronized 关键字的底层实现依赖于 对象头(Object Header) 和 监视器锁(Monitor) 机制,并通过 锁的状态升级(Lock Escalation) 来优化同步性能。 1. synchronized 的底层实现 synchronized 的同步机制基于 Monitor 对象,它是同步的基本实现单元。 通过…...

python可视化:北方城市人口流动趋势分析1

python可视化&#xff1a;北方城市人口流动趋势分析1 斑点鱼在做销售数据分析时发现北京天津的同比下滑明显&#xff0c;客流下滑明显。而山东保定的客流同比上升。引起了斑点鱼对于北方人口流动的好奇。 所以本文将分析2025年北方地区(北京、天津、河北、山东、山西、辽宁等)…...

wps excel 常用操作

数据分列 对于有分隔规律的内容&#xff0c;可以通过分隔符将该内容进行分列 例如&#xff0c;以下字符串&#xff0c;可使用Excel对包含IP地址、数据库类型、环境、负责人和日期的字符串进行分列&#xff1a; 192.168.175.211-MySQL 数据库-DEV-李华-2025.06.30 将以上字符串…...

云智融合普惠大模型AI,政务服务重构数智化路径

2025年是“十四五”收官之年&#xff0c;数字政府和政务数智化作为“数字中国”建设的重点&#xff0c;已经取得了显著成效。根据《联合国电子政务调查报告2024》&#xff0c;我国电子政务发展指数全球排名第35位&#xff0c;与2022年相比提升8个名次&#xff1b;其中&#xff…...

全行业软件定制:APP/小程序/系统开发与物联网解决方案

在数字化浪潮席卷全球的今天&#xff0c;软件已经渗透到我们生活的方方面面&#xff0c;成为推动社会进步的重要力量。作为一家专注于专业软件定制开发的公司&#xff0c;哲科软件深知每一个行业、每一个企业都有其独特的需求和痛点。因此&#xff0c;我们致力于提供个性化软件…...

Java虚拟机(JVM)家族发展史及版本对比

Java虚拟机&#xff08;JVM&#xff09;家族发展史及版本对比 一、JVM家族发展史 1. 早期阶段&#xff08;1996-2000&#xff09; Classic VM&#xff08;Java 1.0-1.1&#xff09;&#xff1a; 厂商&#xff1a;Sun Microsystems&#xff08;Oracle前身&#xff09;。特点&…...

电脑怎么强制退出程序回到桌面 详细操作步骤

电脑日常使用过程中&#xff0c;我们有时会遇到程序无响应或卡死的情况&#xff0c;这时需要采取措施强制关闭这些程序才能保持电脑的正常工作和运行。那么&#xff0c;电脑如何强制退出程序呢&#xff1f;其实方法有很多种&#xff0c;下面便为大家介绍几种电脑强制关闭程序的…...

蓝牙 LE:安全模式和程序说明(蓝牙中的网络安全)

在蓝牙低功耗 (BLE) 中,安全性是一个多方面的难题。了解 BLE 的三种主要安全模式以及五个关键的 BLE 安全程序。 毫无疑问,低功耗蓝牙 (BLE) 技术的迅猛发展为我们的生活带来了更多便利。然而,随着低功耗蓝牙设备的普及,人们对其安全性的担忧也日益加剧。 与普遍看法相反…...