Java 数组另类用法(字符来当数组下标使用)
一、原因
看力扣的时候发现有位大佬使用字符来当数组下标使用。
class Solution {public int lengthOfLongestSubstring(String s) {int result = 0;int[] hash = new int[130];int i = 0;for(int j = 0; j < s.length(); ++j) {while(hash[s.charAt(j)] > 0) {hash[s.charAt(i)]--;++i;}hash[s.charAt(j)]++;int tmp = j - i + 1;result = Math.max(tmp, result);}return result;}
}
二、分析
我打开idea,复制代码,加上断点,开始调试。

执行到下面这句时,int[97]变成了1。
hash[s.charAt(j)]++;
此时s.charAt(j)的值为a,细心的朋友可能就发现了,没错就是a的ASCII值。

所以上面这句等于
hash[97] = hash[97] + 1;
相关文章:
Java 数组另类用法(字符来当数组下标使用)
一、原因 看力扣的时候发现有位大佬使用字符来当数组下标使用。 class Solution {public int lengthOfLongestSubstring(String s) {int result 0;int[] hash new int[130];int i 0;for(int j 0; j < s.length(); j) {while(hash[s.charAt(j)] > 0) {hash[s.charAt…...
error转string
1 概述 在golang中,error类型是非常常见的一种数据类型。在开发过程中,经常会遇到需要将error类型转换成string类型的情况。本文主要介绍几种常见的golang error转string的方法。 2 使用Error()函数 在golang中,Error()函数是error类型的一…...
Android监听用户的截屏、投屏、录屏行为
Android监听用户的截屏、投屏、录屏行为 一.截屏 方案一:使用系统广播监听截屏操作 从Android Q(10.0)开始,Intent.ACTION_SCREEN_CAPTURED_CHANGED字段不再被支持。这是因为Google在安卓10 中引入了一个新的隐私限制&#…...
MATLAB算法实战应用案例精讲-【路径规划】 图搜索算法
目录 前言 几个高频面试题目 运动规划、路径规划、轨迹规划对比 1. 运动规划 2. 路径规划VS轨迹规划...
Elasticsearch-Kibana使用教程
1.索引操作 1.1创建索引 PUT /employee {"settings": {"index": {"refresh_interval": "1s","number_of_shards": 1,"max_result_window": "10000","number_of_replicas": 0}},"mappi…...
mysql(八)docker版Mysql8.x设置大小写忽略
Mysql 5.7设置大小写忽略可以登录到Docker内部,修改/etc/my.cnf添加lower_case_table_names1,并重启docker使之忽略大小写。但MySQL8.0后不允许这样,官方文档记录: lower_case_table_names can only be configured when initializ…...
KALI LINUX攻击与渗透测试
预计更新 第一章 入门 1.1 什么是Kali Linux? 1.2 安装Kali Linux 1.3 Kali Linux桌面环境介绍 1.4 基本命令和工具 第二章 信息收集 1.1 网络扫描 1.2 端口扫描 1.3 漏洞扫描 1.4 社交工程学 第三章 攻击和渗透测试 1.1 密码破解 1.2 暴力破解 1.3 漏洞利用 1.4 …...
vue之mixin混入
vue之mixin混入 mixin是什么? 官方的解释: 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的…...
[ffmpeg] find 编码器
背景 整理 ffmpeg 中,如何通过名字或者 id 找到对应编码器的。 具体流程 搜索函数 avcodec_find_encoder // 通过 ID 搜索编码器 avcodec_find_encoder_by_name // 通过名字搜索编码器源码分析 ffmpeg 中所有支持的编码器都会注册到 codec_list.c 文件中&…...
Android CardView基础使用
目录 一、CardView 1.1 导入material库 1.2 属性 二、使用(效果) 2.1 圆角卡片效果 2.2 阴影卡片效果 2.3 背景 2.3.1 设置卡片背景(app:cardBackgroundColor) 2.3.2 内嵌布局,给布局设置背景色 2.4 进阶版 2.4.1 带透明度 2.4.2 无透明度 一、CardView 顾名…...
云原生Kubernetes系列 | init container初始化容器的作用
云原生Kubernetes系列 | init container初始化容器的作用 kubernetes 1.3版本引入了init container初始化容器特性。主要用于在启动应用容器(app container)前来启动一个或多个初始化容器,作为应用容器的一个基础。只有init container运行正常后,app container才会正常运行…...
汽车电子芯片介绍之Aurix TC系列
Infineon的AURIX TC系列芯片是专为汽车电子系统设计的,采用了32位TriCore处理器架构。该系列芯片具有高性能、低功耗和丰富的外设接口,适用于广泛的汽车电子应用。以下是AURIX TC系列芯片的主要特性: 1. 高性能处理器 AURIX TC芯片采用了高…...
Linux 设置程序开机自启动的方法
目录 前言开机自启动参考 前言 CentOS Linux release 7.9.2009 (Core) 开机自启动 shell> vim /etc/rc.d/rc.local添加开机后执行的命令 sh /xxx/xxx.sh参考 https://www.cnblogs.com/xlmeng1988/archive/2013/05/22/3092447.html...
java企业财务管理系统springboot+jsp
1、基本内容 (1)搭建基础环境,下载JDK、开发工具eclipse/idea。 (2)通过HTML/CSS/JS搭建前端框架。 (3)下载MySql数据库,设计数据库表,用于存储系统数据。 (4…...
【Windows】如何实现 Windows 上面的C盘默认文件夹的完美迁移
如何实现 Windows 上面的C盘默认文件夹的完美迁移 1. 遇到的问题 在我想迁移C盘的 下载 和 视频 文件夹的时候,遇到了这样的问题,在迁移之后,我显卡录像的视频还是保存到了C盘默认位置里,以及我迁移了 下载 之后下载的盘依然是在…...
kubernetes七层负载Ingress搭建(K8S1.23.5)
首先附上K8S版本及Ingress版本对照 Ingress介绍 NotePort:该方式的缺点是会占用很多集群机器的端口,当集群服务变多时,这个缺点就愈发的明显(srevice变多,需要的端口就需要多) LoadBalancer:该方式的缺点是每个servi…...
二维粒子群算法航线规划
GitHub - gabrielegilardi/PathPlanning: Implementation of particle swarm optimization (PSO) for path planning when the environment is known....
uniapp长按图片识别二维码
引用:https://blog.csdn.net/weixin_48596030/article/details/125405779 <image :src"url" mode"widthFix" click.self"previewImage" show-menu-by-longpress"true" style"width: 350rpx;"></image…...
智能优化算法应用:基于和声算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于和声算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于和声算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.和声算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...
Gitee拉取代码报错You hasn‘t joined this enterprise! fatal unable to access
文章目录 一、问题二、解决2.1、进入**控制面板**2.2、进入**用户账户**2.3、进入**管理Windows凭据**2.4、**普通凭据**2.4.1、添加2.4.2、编辑 2.5、重新拉取|推送代码 三、最后 一、问题 Gitee拉取仓库代码的时候报错You hasnt joined this enterprise! fatal unable to ac…...
别再只当CANoe/CANape的‘眼睛’了!VN1640A的I/O通道实战:手把手教你采集电压和开关信号
VN1640A硬件接口深度开发:从电压采集到PWM控制的工程实践 在汽车电子测试领域,Vector的VN系列接口设备早已成为行业标准配置。大多数工程师对CAN/LIN通道的应用驾轻就熟,却常常忽略设备上那个不起眼的9针I/O接口——这个被低估的硬件通道实际…...
思源宋体CN:零成本打造专业中文排版的终极秘籍
思源宋体CN:零成本打造专业中文排版的终极秘籍 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为字体版权费用发愁?还在寻找既能商用又专业的中文字体&…...
ARM AArch32性能监控寄存器(PMU)详解与优化实践
1. ARM AArch32性能监控寄存器深度解析在嵌入式系统和移动计算领域,性能监控单元(PMU)是处理器微架构中至关重要的组成部分。作为一位长期从事ARM架构开发的工程师,我经常需要深入理解PMU寄存器的工作原理,以优化关键代码段的执行效率。本文将…...
2026年企业制品管理平台选型推荐:Gitee Repo 如何构建安全高效协作基石
在软件研发的关键环节中,制品管理正经历着从基础存储工具向安全可信协作中枢的深刻演进。面对开源风险、跨团队协作效率与版本追溯等多重挑战,企业对于一套能够深度守护制品安全并支撑高效协同的解决方案需求迫切。Gitee Repo 制品管理平台凭借其全面的能…...
AI编码工具集:提升开发效率的智能助手选型与应用指南
1. 项目概述:为什么我们需要一个AI编码工具集?如果你和我一样,每天大部分时间都在和代码打交道,那你肯定对这样的场景不陌生:面对一个复杂的业务逻辑,你卡在某个函数的设计上,反复调试却找不到最…...
[实战指南+数据解析] DEAP数据集:基于EEG、生理与视频信号的多模态情感计算入门
1. DEAP数据集入门:多模态情感计算的钥匙 第一次接触DEAP数据集时,我被它丰富的多模态数据震撼到了。这个数据集就像情感计算领域的"瑞士军刀",包含了EEG脑电波、皮肤电导等生理信号,还有22名参与者的面部视频记录。最特…...
ARM Cortex-M位带操作:从原理到实战,实现GPIO原子级高效控制
1. 项目概述:从“点灯”到“位带”,一次底层效率的跃迁如果你是从51单片机或者Arduino这类平台转战到ARM Cortex-M系列微控制器(比如STM32)的开发者,在点亮第一个LED时,可能会感到一丝“别扭”。在51单片机…...
如何5分钟掌握ncmppGui:解锁音乐格式限制的终极免费工具
如何5分钟掌握ncmppGui:解锁音乐格式限制的终极免费工具 【免费下载链接】ncmppGui 一个使用C编写的极速ncm转换GUI工具 项目地址: https://gitcode.com/gh_mirrors/nc/ncmppGui 你是否曾经遇到过这样的情况:从音乐平台下载的歌曲只能在特定应用中…...
HalloWing M0开发板:从Arduino到CircuitPython的嵌入式创意实践
1. 项目概述:为什么选择HalloWing M0作为你的创意引擎如果你和我一样,喜欢捣鼓些能发光、发声甚至能感知互动的电子小玩意儿,但又对那些密密麻麻的接线和复杂的底层寄存器配置感到头疼,那么Adafruit HalloWing M0开发板很可能就是…...
股市均线全解:种类、含义、计算、用法
一、均线是什么均线 移动平均线(MA)把一段时间内的收盘价做平均,连成一条线,用来平滑股价波动,看清趋势、支撑、压力。二、常用均线有哪些(默认 5/10/20/30/60/120/250)表格均线名称周期市场俗…...
