avatar
文章
107
标签
18
分类
34

首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Zhangzqs
搜索
首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Leetcode-307-区域和检索-数组可修改[线段树]
发表于2022-04-07|数据结构与算法Leetcode
Leetcode-307-区域和检索-数组可修改 题目 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left <= right 实现 NumArray 类: NumArray(int[] nums) 用整数数组 nums 初始化对象 void update(int index, int val) 将 nums[index] 的值 更新 为 val int sumRange(int left, int right) 返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 (即,nums[left] + nums[left + 1], …, nums[right]) 解题思路 暴力法 根据题意不难直接写出暴力解决方案, 当然直接TLE 可以得出, 更新操作时间复杂度O(1)O(1)O(1), 求和操作时间复杂度O(r−l)O(r-l)O( ...
二叉树的遍历
发表于2022-04-07|数据结构与算法其他
准备工作 我们定义一个树的结点的结构体如下, 123456789101112struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int val) : val(val), left(nullptr), right(nullptr) {} TreeNode(int val, TreeNode *left) : val(val), left(left), right(nullptr) {} TreeNode(int val, TreeNode *left, TreeNode *right) : val(val), left(left), right(right) {}}; 定义一系列调试输出函数 12345678910111213141516171819202122232425262728293031// 美化输出一颗二叉树void output(TreeNode *root) ...
创造一块虚拟硬盘
发表于2022-03-08|操作系统操作系统45讲
/dev/zero讲解 在Linux中,文件/dev/zero是在逻辑上存放了无限大小的0x00数据。 我们可以写一段简单的Python脚本验证, 1234f = open('/dev/zero')f.read(1)f.read(10)f.read(100) 如下图,可以发现输出结果全是字节为0的二进制数据。 注意:read中参数表示一次读取多少字节数据,如果你不传入参数,即使用默认参数-1,就表示一次性完整读取整个文件并加载到内存中,然而/dev/zero是逻辑上的文件,拥有无限大小,永远也读不完。所以,如果你直接使用f.read()那么你可以看到电脑内存将飙升,直到内存不足死机。[doge] 创造虚拟硬盘 现在,我们需要创建一块虚拟硬盘,虚拟硬盘本质上就是一个文件,把这个文件当作一块硬盘,进行原始的读写硬盘操作,所以创建一块虚拟硬盘就是创建一个一定大小的文件。我们现在有一个目标,就是创建一块100M大小的文件,内容全部填充为0x00。 在Linux中,使用cat命令可以读取文件并输出到终端,使用>操作符可以使终端输出重定向到指定文件的输入。 我们使用 ...
Android-ConstraintLayout实战
发表于2022-03-07|Android
需求分析 使用ConstraintLayout,完成以下布局的设计 实施 整体边距约束 对最外层ConstraintLayout添加属性,实现整体的内边距 android:padding=“20dp” 第一个标题 设置尺寸自适应,字号30sp,加粗显示后 设置该控件位于父容器左上角,即 Start与父容器的Start对齐 app:layout_constraintStart_toStartOf=“parent” Top与父容器的Top对齐 app:layout_constraintTop_toTopOf=“parent” 123456789<TextView android:id="@+id/third_text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:textStyle ...
Android-LinearLayout实战
发表于2022-03-07|Android
需求分析 使用LinearLayout实现如下布局, 实施 定义形状 矩形的左下右上设置圆角半径50dp 创建drawable/half_circle_rect.xml 12345<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:topRightRadius="50dp" android:bottomLeftRadius="50dp"/></shape> 定义布局 分析可得,最外层LinearLayout使用水平方向排列,且宽度比为1:1 左右两侧LinearLayout使用垂直方向排列,宽度比分别为1:1:1与1:2 所有的子元素均有一定外边距,且最外层布 ...
Android-RelativeLayout实战
发表于2022-03-07|Android
需求分析 实现如下图所示的效果 需要设置字体大小,对齐方式,组件间隔,按钮样式 最外层布局具有一个整体的内边距 当点击按钮时,背景色改为红色,字体颜色改为黄色 当输入框捕获焦点时(点击时),要求其边框为加粗的蓝色圆角框,否则要求其边框为细的灰色圆角框 仅使用相对布局实现 布局实施 整体内边距 设置最外层RelativeLayout的paddingHorizontal边距 android:paddingHorizontal=“10dp” 确定退出文字设计 最顶端有一个居中的“你确定要退出吗?”文本显示,使用TextView来实现 设置TextView的尺寸适应内容,文本内容,文字大小,加粗显示,水平居中, 由于相对布局需要知道其兄弟组件名,赋予其id为text1 12345678<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你确定要退出吗?& ...
操作系统45讲-2
发表于2022-03-06|操作系统操作系统45讲
main函数调用之前的代码 编写如下的汇编入口代码, entry.asm 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596;彭东 @ 2021.01.09MBT_HDR_FLAGS EQU 0x00010003MBT_HDR_MAGIC EQU 0x1BADB002 ;多引导协议头魔数MBT_HDR2_MAGIC EQU 0xe85250d6 ;第二版多引导协议头魔数global _start ;导出_start符号extern main ;导入外部的main函数符号[section .start.text] ;定义.start.text代码节[bits 32] ;汇编成32位代码_start: jmp _entryALIGN 8mbt_hdr: ...
操作系统45讲-1
发表于2022-03-06|操作系统操作系统45讲
代码编写 写个HelloWorld 123456#include <stdio.h>int main(int argc, char const *argv[]){ printf("hello world!\n"); return 0;} 代码编译 程序的编译过程如下图, 根据源文件生成预处理文件 HelloWorld.i 1gcc -E HelloWorld.c -o HelloWorld.i 根据预处理文件生成汇编文件 HelloWorld.s 1gcc -S HelloWorld.i -o HelloWorld.s 根据汇编文件生成目标文件 HelloWorld.o 1gcc -c HelloWorld.s -o HelloWorld.o 根据目标文件生成可执行文件 1gcc HelloWorld.o -o HelloWorld 代码执行 运行可执行文件 1./HelloWorld 代码反编译 反编译可执行文件 反编译可执行文件 HelloWorld.dump 1objdump -d HelloWorld ...
Manjaro中zsh在vscode下乱码
发表于2022-03-05|各种日常踩坑小技巧
在Manjaro下,vscode使用zsh产生乱码,如下图所示, 打开设置,搜索terminal font 找到设置项Terminal › Integrated: Font Family 设置为NotoSansMono Nerd Font 如下图即可显示正常
Linux下优雅地通过docker-easyconnect实现内网访问
发表于2022-03-04|各种日常踩坑小技巧
在Linux下用过EasyConnect的小伙伴应该知道,EasyConnect在Linux环境下相当难用。笔者之前在Ubuntu20.04下安装EasyConnect打开后闪退。         闪退问题主要是系统库太新了,而EasyConnect还没升级依赖库。网上有解决方案,但是打开后还是有一定概率闪退。而且连接成功后,莫名其妙导致电脑只能访问EasyConnect内网环境,外网无法访问。         最近,更换到Manjaro 21后,通过yay安装软件真香,但是只有EasyConnect安装失败,于是便探索出一个方法。 EasyConnect In Docker 使用容器化技术,将EasyConnect封印在Docker中运行。 该项目Github主页如下,docker-easyconnect 电脑安装Docker后,通过如下命令即可一键运行docker-easyconnect镜像 1docker run --device /dev/net/tun --cap-add NET_ADMIN -ti -p 127.0.0.1:1080:1080 -p 127.0.0.1: ...
1…789…11
avatar
Zhangzqs
一个分享与记录的个人空间
文章
107
标签
18
分类
34
Follow Me
最新文章
图形学-Geometry几何2025-08-10
图形学-Sharding着色2025-08-09
图形学光栅化2025-08-09
椭圆周长公式推导2025-04-22
Hyper-V嵌套虚拟化运行PVE折腾2025-04-19
分类
  • Android7
  • Golang6
  • Java框架2
  • Python1
  • ROS机器人1
  • Rust1
  • 信息安全9
  • 各种日常踩坑小技巧4
标签
Scrum pandoc Typora Hibernate 敏捷开发 数学建模 MyBatis 读后感 数据库 踩坑 Java 编译原理 C/C++ 算法 设计模式 语法分析 hexo Linux
归档
  • 八月 20253
  • 四月 20254
  • 六月 20241
  • 五月 20241
  • 四月 20244
  • 三月 20241
  • 二月 20242
  • 十一月 20231
网站资讯
文章数目 :
107
已运行时间 :
本站总字数 :
186.8k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Zhangzqs
框架 Hexo|主题 Butterfly
搜索
数据库加载中