自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Leetcode 497. 非重叠矩形中的随机点

前置知识前缀和+二分查找思路设n为矩形个数直观想法,先在[0, n - 1]下标之间随机取一个矩形,然后再在该矩形中随机去一个点。矩形中随机取点可以在长和宽的范围上随机取一个值,对应出一个二维坐标就是该点。但是先在[0, n - 1]下标之间随机取一个矩形,不满足题目要求的等概率分布;下面是非严谨的数学的证明,因为面积大的矩形和面积的小的矩形概率被取到...

2022-06-10 13:38:44 176 1

原创 Acwing 45场周赛

A 字符串的价值题目每个字符 1 的价值为 a1,每个字符 2 的价值为 a2,每个字符 3 的价值为 a3,每个字符 4 的价值为 a4。一个字符串的价值等于其所包含的所有字符的价值之和。给定一个由字符 1、2、3、4 构成的字符串 S,请你计算它的价值。输入格式第一行包含四个整数 a1,a2,a3,a4第二行包含一个字符串 S。输出格式一个整数,表示字符串 S 的价值。数据范围前三个测试点满足 0≤a1,a2,a3,a4≤50,1≤|S|≤10所有测试点满足 0≤a1,a2,a3

2022-04-04 16:30:08 114

原创 leetcode 440. 字典序的第K小数字

题目地址(440. 字典序的第K小数字)https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order/题目描述给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。 示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n

2022-03-24 23:26:31 416

原创 传智杯第四届初赛 B小卡与质数2

小卡与质数2 题目地址 https://www.luogu.com.cn/problem/T216909?contestId=58544题目背景小卡迷上了质数!题目描述小卡最近迷上了质数,所以他想把任何一个数都转化为质数!小卡有 TTT 次询问,每次给你一个数字 xxx,问有多少个比 xxx 小的非负整数 yyy,使得 x⊕yx\oplus yx⊕y 是质数,其中 ⊕\oplus⊕ 表示按位异或。输入输出格式输入格式第一行一个正整数 $T(1\le T\le10^5)$,表示有 $T$.

2022-03-12 11:52:30 1288 1

原创 leetcode 838.推多米诺

题目地址(838. 推多米诺)https://leetcode-cn.com/problems/push-dominoes/题目描述n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样地,倒向右边的多米诺骨牌也会推动竖立在其右侧的相邻多米诺骨牌。如果一张垂直竖立的多米诺骨牌的两侧同时有多米诺骨牌倒下时,由于受力平衡, 该骨牌仍然保持不变。就这个问题而言,我们会认为一张正在倒下的多米诺

2022-02-22 23:59:04 100

原创 leetcode372. 超级次方

leetcode372. 超级次方https://leetcode-cn.com/problems/super-pow/题目描述你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。 示例 1:输入:a = 2, b = [3]输出:8示例 2:输入:a = 2, b = [1,0]输出:1024示例 3:输入:a = 1, b = [4,3,3,8,5,2]输出:1示例 4:输入:a = 2147483

2021-12-08 10:42:42 185

原创 leetcode 438.找到字符串中所有字母异位词

题目: 找到字符串中所有字母异位词https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/题目描述给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba",

2021-11-29 11:23:47 139

原创 Acwing 算法基础课 基础算法(二)高精度 前缀和 差分

高精度A + B:两个大整数相加A - B:两个大整数相减A × a:一个大整数乘一个小整数A ÷ a:一个大整数除以一个小整数数的存储:用一个数组来存大整数的每一位上的数,将大整数按从低位到高位存储,就是将个位存到数组的第一位,十位存到数组的第二位,依次类推,最高位存到数组的最后一位(目的是为了方便进位,这样子,数组对应元素相加,进位就进到数组的下一个元素)高精度加法算法模板:#include <iostream>#include <cstring>#incl

2021-08-16 23:21:26 138

原创 Acwing 算法基础课 基础算法(一)排序 二分

Acwing 算法基础课基础算法【一】快速排序归并排序整数二分浮点数二分快速排序Acwing 785 快速排序思路:①确定分界点pivot,可以取数组最左边的元素arr[l],也可以取数组最右边的元素arr[r],取中间的元素arr[mid],或者随机取值②调整区间确定两个指针i,j,注意i=left-1,j = right+1(这样的目的是和之后每次交换后两个指针都移动一次做一个统一 ,方便do while写法),左指针i从数组左边界left开始,往右扫描,右指针j从数组右边界right开始,

2021-08-16 23:20:23 104

原创 C++ 语法基础(3) STL容器与位运算

STL容器STL容器vectorvector定义vector的遍历vector 常用函数queuequeue定义queue遍历queue常用函数stack栈的定义与操作双端队列双端队列的定义和操作Setset定义set的常用操作unordered_setunordered_multisetmapmap的定义map的常用操作unodered_mappair位运算与常用库函数位运算常用库函数STL容器vectorvector是变长数组,支持随机访问,不支持在任意位置O(1)插入vector定义#inc

2021-08-09 18:34:18 339

原创 C++语法基础(1)

目录变量,输入输出语句,表达式,顺序语句判断语句循环语句数组字符串函数结构体,类,指针,引用STL容器 位运算 常用库函数变量,输入输出语句,表达式,顺序语句判断语句循环语句数组字符串函数结构体,类,指针,引用STL容器 位运算 常用库函数...

2021-07-16 23:19:07 386 2

原创 《算法很美》3.分治思想 (python实现) 【3】堆,二叉树,排序

二叉树简介用数组表示一棵树,第一个元素是根节点,某一节点位置为i,其左子节点为2i+1,右子节点2i+2,父节点为(i-1)//2树的遍历顺序:前序遍历,中序遍历,后序遍历(前中后对应的根的位置,前序遍历为根左右,中序遍历为左根右,后序遍历为左右根)#树的三种遍历顺序def preorder(alist,i): if i>len(alist)-1: return if i<=len(alist)-1: print(alist[i])

2020-07-23 23:56:44 277

原创 《算法很美》3.分治思想 (python实现) 【2】排序算法思想的练习题

例题1.调整数组顺序使奇数位于偶数前面思路:运用了快速排序的思路,确定两指针,左指针向右扫描,遇到偶数停下,右指针向左扫描,遇到奇数停下,左右指针对应的数交换。直到左指针右指针交错(左指针大于右指针)alist=[3,1,2,7,4,9,8,5]left=0right=len(alist)-1done=Truewhile done: while left<=right and alist[left]%2==1: left+=1 while left&lt

2020-07-23 17:17:10 172

原创 《算法很美》3.分治思想 (python实现) 【1】快速排序 归并排序

一.分治思想介绍二.快速排序算法思路:对一个数组进行排序,选取一个参考值(主元)作为中间值,将这个数组中比参考值(主元)小的数放在其左边,比参考值(主元)大的数放在其右边,并且不断递归调用,对左子数组和右子数组进行同样的方法,最后进行整合,即为拍好的有序数组。1.单项扫描法确定中间分界点,对左子数组进行排序,对右子数组进行排序确定中间分界点方法:以数组第一个值作为参考,确定两个指针,左指针指向数组第二个值,右指针指向数组最后一个值,左指针不断右移,在碰到比中间参考值大时停下,与右指针对应的值

2020-07-18 23:47:05 270

原创 《算法很美》1. 位运算(python实现)

在这里插入代码片@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设...

2020-05-05 10:40:34 417

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除