0%

​ 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [start$_i$, end$_i$] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

阅读全文 »

​ 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

​ 请必须使用时间复杂度为 $O(log n)$ 的算法。

阅读全文 »

​ 给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。

阅读全文 »

一、Miller-Rabin算法介绍

  Miller-Rabin 算法(强伪素数检测)利用原理:若n为素数,则根据费马小定理:若n是一个素数,且(a,n)=1,则$a ^ {n-1}=1modn$。且1$mod$n只有1和-1 两个平方根。

  首先,假设n为一个非2素数,则n-1为一个偶数,任何一个偶数可以写成$2 ^ k m$的形式,其中m为一个奇数。随机选取a,满足$1\le a\le n-1$。将$a^m(mod\ n)$赋值给一个新的变量b。如果,$b\equiv1(mod\ n)$,则表明假设成立,n 为大于 2 的素数。否则,进行k次循环,每次循环判断,若$b\equiv -1(mod\ n)$,则n为大于2的素数,否则将$b ^ 2(mod\ n)$赋值给b,继续循环。若最终没有得到$b\equiv -1(mod\ n)$,则n为一个合数。

阅读全文 »

一、背景介绍

  “AES – 高级加密标准(英语:Advanced Encryption Standard),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。” — 摘抄于Wikipedia

阅读全文 »

两数之和

1、暴力求解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++)
{
for(int j=i+1;j<nums.size();j++)
{
if(nums[i]+nums[j]==target)
return {i,j};
}
}
return {};
}
};

时间复杂度为$O(n^2)$,空间复杂度$O(1)$

阅读全文 »

  因为之前的博客忘记了备份,所以电脑重装后,陆续地重新搭建博客,并上传文章。