算法和数据结构学习中的一些小的工具函数
算法和数据结构学习中的一些小的工具函数
作者:Grey
原文地址:
博客园:算法和数据结构学习中的一些小的工具函数
CSDN:算法和数据结构学习中的一些小的工具函数
提取一个数二进制最右侧的 1
比如二进制为:0100 0001 0001 1011 0001 0001 1001 1000
最右侧的1为: 0000 0000 0000 0000 0000 0000 0000 1000
num & (-num)
或
num & (~num + 1)
打印一个 32 位整数的二进制形式
public static String getBinary(int num) {StringBuilder sb = new StringBuilder();for (int i = 31; i >= 0; i--) {sb.append(((1 << i) & num) == 0 ? "0" : "1");}return sb.toString();
}
前缀和数组加速求区间和
在数组不可变的情况下,可以使用前缀和数组加速求区间和,描述见:leetcpde 0303 range sum query immutable
class NumArray {int[] preSum;public NumArray(int[] nums) {preSum = new int[nums.length];preSum[0] = nums[0];for (int i = 1; i < nums.length; i++) {preSum[i] = nums[i] + preSum[i - 1];}}public int sumRange(int left, int right) {if (left == 0) {return preSum[right];}return preSum[right] - preSum[left - 1];}}
注:前缀和只适合数组不可变情况下加速求区间和,如果数组可变,则需要使用线段树或者树状数组来解决这个问题。
要表示 0 ~ range 需要几个二进制位
public static int getNeedBits(int range) {int num = 1;while ((1 << num) - 1 < range) {num++;}return num;
}
将[0,x)中的数出现的概率调整成 x 2 x^2 x2
public static double randToPow2() {return Math.max(Math.random(), Math.random());
}
说明:Math.random()表示的是[0,1)区间中任意一个数 X 的概率是 X。
持续更新中
更多
算法和数据结构笔记
相关文章:
算法和数据结构学习中的一些小的工具函数
算法和数据结构学习中的一些小的工具函数 作者:Grey 原文地址: 博客园:算法和数据结构学习中的一些小的工具函数 CSDN:算法和数据结构学习中的一些小的工具函数 提取一个数二进制最右侧的 1 比如二进制为:0100 0…...
解决2K/4K高分屏下Vmware等虚拟机下Kail Linux界面显示问题
问题现象 在我们日常使用VirtualBox、Vmware workstation、Hyper-V等虚拟机安装使用Kali系统,在2K/4K高分辨率电脑下Kali系统界面显示太小,包括各种软件及命令终端字体均无法很直观的看出,影响我们的正常测试及使用。 常规处理思路 很多人…...
【校招VIP】java语言考点之双亲委派模型
考点介绍: 双亲委派是校招面试中的高频考点之一。双亲委派机制定义: 当一个类加载器收到了类加载的请求的时候,他不会直接去加载指定的类,而是把这个请求委托给自己的父加载器去加载,只有父加载器无法加载这个类的时候࿰…...
2023年阿里云新用户云服务器价格表
阿里云,作为国内领先的云计算服务提供商,一直致力于为全球用户提供安全、稳定、高效的云计算服务。对于新用户来说,阿里云服务器是一个非常不错的选择。那么,阿里云新用户云服务器的价格是怎样的呢?本文将为大家详细介…...
信号相关名词概念汇总-采样周期、泄露、窗函数等
信号相关名词概念汇总-采样周期、泄露、窗函数等 以下为信号相关名词概念的汇总 1 名词解释 采样周期/间隔:采样频率的倒数,两次相邻采样之间的时间间隔采样时间:采样的总时长,即采样点数N和采样周期的乘积采样频率: …...
数字化新零售营销模式如何落地?数字化新零售营销功能推荐
通过科技手段,针对对线下零售店面的客户进行消费行为、频次等的分析,并进一步整合线上线下资源,实现实体零售的效率充分化,便是目前很火的新零售营销模式,能够将实体门店与数字化技术进行有机结合,通过为…...
712. 两个字符串的最小ASCII删除和 -- 动规
712. 两个字符串的最小ASCII删除和 class MinimumDeleteSum:"""712. 两个字符串的最小ASCII删除和https://leetcode.cn/problems/minimum-ascii-delete-sum-for-two-strings/"""def solution(self, s1: str, s2: str) -> int:""&qu…...
python中的小tips
1、注释 1、注释快捷键: Ctrl/ 可以注释掉光标所在的这一行,或者是选中的区域。 对于注释掉的这一行或者这一区域,按下ctrl/则会去掉注释。 2、多行注释 在写多行注释时,英文状态下写三个",会自动变成六个"&…...
高精度(加减乘除)
高精度算法出现的原因 当参与运算的数的范围大大的超出了标准数据类型,如int(-2147483648 ~ 2147483647)或者long long的范围,就需要使用高精度算法来进行数的运算。高精度运算的特点是代码长度比较长,本质是对数学运算…...
java企业数据管理系统
项目介绍 此项目为企业数据管理系统的后端部分,前端部分请参考vue-admin,项目实现了菜单管理、用户管理、角色管理和权限管理四个基础模块,前端菜单管理结合动态路由可自由添加菜单。结合Shiro权限管理实现了菜单和按钮的权限控制。 ❝ 前端…...
【云原生进阶之PaaS中间件】第二章Zookeeper-3.1分布式架构介绍
1 分布式架构详解 1.1 分布式发展历程 1.1.1 单点集中式 特点:App、DB、FileServer都部署在一台机器上。并且访问请求量较少 1.1.2 应用服务和数据服务拆分 特点:App、DB、FileServer分别部署在独立服务器上。并且访问请求量较少 1.1.3 使用缓存改善…...
2023-09-11力扣每日一题
链接: 630. 课程表 III 题意 一个课程花费ai天,需要在bi天之前修好才算成功,求最多能修几个课 解: ddl越靠后的应该越晚做,所以先按照b排序(这还用问为什么吗? 然后通过维护一个优先队列存…...
windows10使用wheel安装tensorflow2.13.0/2.10.0 (保姆级教程)
安装过程 安装虚拟环境安装virtualenv安装满足要求的python版本使用virtualenv创建指定python版本的虚拟环境 安装tensorflow安装tensorflow-docs直接下载使用wheel下载 在VSCode编辑器中使用虚拟环境下的python解释器,并使用tensorflow常见错误 注意: t…...
【LeetCode与《代码随想录》】贪心算法篇:做题笔记与总结-JavaScript版
代码随想录 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 文章目录 455. 分发饼干376. 摆动序列53. 最大子数组和122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II1005. K 次取反后最大化的数组和134. 加油站135. 分发糖果(困难&#…...
Http客户端OkHttp的基本使用
简介 OkHttp是一个强大的开源HTTP客户端,它被广泛用于Android和Java应用程序中。OkHttp具有简单易用的API,提供了许多高级功能,如连接池、请求压缩和缓存等。 依赖 要使用OkHttp,需要在项目的构建文件中添加以下依赖࿱…...
认识网线上的各种参数标号
最近工作需要,接触了很多不同类型的网线,为了能够区分不同型号的网线,特意做一篇笔记用来学习,如有记录有误之处,欢迎大家指正~初步认识网线 常用的网络电缆有三种:双绞线、同轴电缆和光纤电缆(…...
软件测开记录(一)
知识点汇总 14:00面试,14:06就出来了,问的问题有点变态。。。 python自动化测试学习路线(从入门到精通) 单元知识点 测试常用工具 常用的客户端和服务器端开发和测试工具 服务器与客户端常用测试工具与…...
基数排序之代码解析
基数排序是生活中咱们写程序用的比较少的排序,但是这个排序比较巧妙,今天就给大家讲一讲,原理都在代码里面,下面会给一些解释。 import java.util.Arrays;public class Code04_RadixSort {// only for no-negative valuepublic s…...
使用C语言EasyX 创建动态爱心背景
简介 在计算机图形学的世界中,有很多方法可以使程序的界面更加吸引人。在本篇博客中,我将向大家介绍如何使用 EasyX 图形库在 C 中创建一个动态的爱心背景。这不仅是一个简单的动画效果,它还包括背景的星星、旋转的心形以及一个美观的背景渐…...
springboot redisTemplate.opsForValue().setIfAbsent返回null原理
一、版本 springboot版本:spring-boot-starter-data-redis 2.1.6 redisson版本:redisson-spring-boot-starter 3.11.5 二、场景 Boolean res redisTemplate.opsForValue().setIfAbsent("key","value");以上代码同一时间多次执行…...
基于MCP协议的本地代码历史管理工具:无感备份与即时回溯
1. 项目概述:一个为开发者打造的“时光机”如果你是一名开发者,大概率经历过这样的场景:在调试一个复杂功能时,你反复修改了一段代码,运行、测试、再修改……几个小时后,你突然意识到,两个小时前…...
揭秘哔咔漫画下载器:打造高效离线漫画图书馆的完全指南
揭秘哔咔漫画下载器:打造高效离线漫画图书馆的完全指南 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh…...
物联网设备超低功耗设计实战:从硬件协同到软件优化的全链路解析
1. 项目概述:为什么我们需要一个“超低功耗”的无线平台?在物联网设备开发领域,功耗一直是一个绕不开的核心痛点。我经历过太多项目,前期功能验证一切顺利,一到功耗测试就“翻车”。客户拿着样机问:“你们这…...
Hyper-V DDA图形工具:告别PowerShell命令行的设备直通新时代
Hyper-V DDA图形工具:告别PowerShell命令行的设备直通新时代 【免费下载链接】DDA 实现Hyper-V离散设备分配功能的图形界面工具。A GUI Tool For Hyper-Vs Discrete Device Assignment(DDA). 项目地址: https://gitcode.com/gh_mirrors/dd/DDA 还在为Hyper-…...
3步搞定Linux启动盘:Deepin Boot Maker完全使用指南
3步搞定Linux启动盘:Deepin Boot Maker完全使用指南 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker 在Linux系统安装和维护过程中,启动盘制作是一个看似简单却充满挑战的环节。传统命令行工…...
如何快速构建工业通信系统:SECS4Net的完整实战指南
如何快速构建工业通信系统:SECS4Net的完整实战指南 【免费下载链接】secs4net SECS-II/HSMS-SS/GEM implementation on .NET 项目地址: https://gitcode.com/gh_mirrors/se/secs4net SECS4Net是一个基于.NET平台的开源库,完整实现了SEMI标准的SEC…...
如何用Cyber Engine Tweaks终极解锁赛博朋克2077的完整定制体验:新手快速入门指南
如何用Cyber Engine Tweaks终极解锁赛博朋克2077的完整定制体验:新手快速入门指南 【免费下载链接】CyberEngineTweaks Cyberpunk 2077 tweaks, hacks and scripting framework 项目地址: https://gitcode.com/gh_mirrors/cy/CyberEngineTweaks 你是否厌倦了…...
Arm Neoverse N3核心RAS架构与错误处理机制解析
1. Arm Neoverse N3核心的RAS架构解析 在服务器级处理器设计中,可靠性(Reliability)、可用性(Availability)和可维护性(Serviceability)构成了RAS技术的三大支柱。Arm Neoverse N3作为面向基础设施的核心设计,其RAS机制通过硬件级错误检测、记录和恢复功…...
FastbootEnhance:面向Windows用户的终极Fastboot工具箱与Payload提取器指南
FastbootEnhance:面向Windows用户的终极Fastboot工具箱与Payload提取器指南 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance FastbootE…...
如何一键下载推特上的所有媒体资源?X-Spider帮你轻松解决内容收集难题
如何一键下载推特上的所有媒体资源?X-Spider帮你轻松解决内容收集难题 【免费下载链接】x-spider A spider for X (Twitter) 项目地址: https://gitcode.com/gh_mirrors/xs/x-spider 你是否曾遇到过这种情况:在推特上看到了精美的图片、有趣的视频…...
