avatar
文章
119
标签
477
分类
36

首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Zhangzqs
搜索
首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Leetcode-357-统计各位数字都不同的数字个数
发表于2022-04-11|数据结构与算法Leetcode
题目 357. 统计各位数字都不同的数字个数 给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。 示例 1: 输入:n = 2 输出:91 解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。 示例 2: 输入:n = 0 输出:1 提示: 0 <= n <= 8 解题 题目分析 我们逐一考虑各种情况, 设函数d(t)d(t)d(t)的值为n=tn = tn=t时的结果, 设函数f(t)f(t)f(t)为仅含有t位数字的各位数字都不同的数字x的个数 当t = 0 时候, 0≤x<10\leq x < 10≤x<1, 此时x只能选择0, 即有1种选择 即d(0)=1d(0) = 1d(0)=1 当t = 1 时候, 0≤x<100\leq x < 100≤x<10, 此时x只能选择0~9, 即有10种选择 即d(1)=10d(1)=10d(1)=10 当t = 2 ...
Leetcode-310-最小高度树
发表于2022-04-10|数据结构与算法Leetcode
题目 原文 原题链接 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。   给你一棵包含 n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。 可选择树中任何一个节点作为根。当选择节点 x 作为根节点时,设结果树的高度为 h 。在所有可能的树中,具有最小高度的树(即,min(h))被称为 最小高度树 。   请你找到所有的 最小高度树 并按 任意顺序 返回它们的根节点标签列表。 树的 高度 是指根节点和叶子节点之间最长向下路径上边的数量。   样例输入: n = 4, edges = [[1,0],[1,2],[1,3]]   样例输出: [1] 示例 1: 输入:n = 4, edges = [[1,0],[1,2],[1,3]] 输出:[1] 解释:如图所示,当根是标签为 1 的节点时,树的高度是 1 ,这是唯一的最小高度树。 示例 2: ...
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 ...
1…8910…12
avatar
Zhangzqs
一个分享与记录的个人空间
文章
119
标签
477
分类
36
Follow Me
最新文章
Git合并前将开发分支的多个commit压缩成一个2026-02-05
乐理知识2026-01-28
《猪猪侠》主题曲2026-01-19
HOYO-MIX-Eternal-Moonborn 学习笔记2025-12-06
主流向量数据库深度对比:Milvus vs Qdrant 选型指南2025-11-26
分类
  • AI1
  • Android7
  • GAMES101课程笔记11
  • Git1
  • Golang6
  • Java框架2
  • Python1
  • ROS机器人1
标签
编译原理 Hive MyBatis 解密算法 机器人 显式表示 深度测试 Java 音符定义 性能调优 SmachViewer RSA加解密 内网访问 矩阵加密解密 模型变换 上标输入 安装栅栏 Python线性规划求解 随机数索引 二元关系符 Qdrant 椭圆曲线 哈希表 FAT12 测试驱动开发 Matlab数组运算 粒子系统 XML布局 数学记忆 和弦 数据加载 FAT数据结构 泛音点计算 版本控制 光的折射 数组差值计算 项目实战 计算机图形学 隐式表示 JSON Web Token
归档
  • 二月 20261
  • 一月 20261
  • 十二月 20251
  • 十一月 20252
  • 十月 20255
  • 八月 20254
  • 四月 20255
  • 六月 20241
网站资讯
文章数目 :
119
已运行时间 :
本站总字数 :
209.2k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By Zhangzqs
框架 Hexo|主题 Butterfly
搜索
数据库加载中