04 2022 档案
摘要:题目: 给定整数x,求$\sqrt{x}$ 解法: 本题有两种常用解法,第一种自然是二分法,不再赘述,要注意的是可能会溢出,需要用long long。第二种是牛顿迭代法,利用导数逼近零点的方法。对于函数$y=f(x)$,我们任意取初始点$x_0$,然后不断迭代令$x_{i+1}=x_i-\frac{
阅读全文
摘要:题目: 给定正整数a,大整数b(数组),求$a^b\mod1337$ 思路: 稍微思考一下就知道要用快速幂来求,和平时不一样的是,这道题的幂次是以十进制表示的,所以更烤鸭做题者对于快速幂本身的理解。我们以$a^{345}$为例,\(a^{345}=a^{3*10^2+4*10^1+5*10^0}=(
阅读全文
摘要:并查集在设定father时需要防止成环,所以需要人为规定一个序,例如大的是小的的father。 class Solution { public: int findCircleNum(vector<vector<int>>& isConnected) { int n = isConnected.siz
阅读全文
摘要:题目: 给定数组和窗口大小k,输出滑动过程中窗口的最大值 解法: 本题求得是窗口内的最大值,而滑动这一性质又要求不能随意丢弃信息。这里可以使用单调队列来完成这个需求——保留一定的信息、动态变化,现在问题是如何设计这个单调队列。我们维护一个单调减的队列,由此,每次队列pop_front之后,队列头依然
阅读全文
摘要:题目: 给定数组,含有两个只出现一次的数字,其余均出现两次。请找出这两个数字,时间O(n),空间O(1) 解法: 空间O(1)完全去除了计数的做法,偷偷看标签知道这是位运算题,立刻想到异或。将所有数字异或起来得到两个单独数字的异或,可惜没有进一步的方法把这两个数字找出来。 再偷偷看题解知道要用分组异
阅读全文
摘要:快排的代码难点一般在于停止循环的边界条件,这边给出一个不是从两边向中间遍历,而是单向遍历的代码,实现起来更加方便。 #include <ctime> #include <cstdlib> #include <algorithm> using namespace std; class Solution
阅读全文

浙公网安备 33010602011771号