网站首页 站内搜索

搜索结果

查询Tags标签: mid,共有 942条记录
  • 查找数字所在的位置

    又是被迫营业。 这道题目很简单但我错了 二分模板题.1 int l = -1,r =N; 2 while(l+1!=r) 3 { 4 m=(l+r)>>1; 5 if(check(m)) l=m; 6 else r=m; 7 } 8 return l or r; 这个模板有几亿个细节值得注意: 1.l 与 r的初值在有效区间外,为了防止整个区间都满…

    2022/4/23 23:12:37 人评论 次浏览
  • 69. x 的平方根

    69. x 的平方根给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例 1: 输入:x = 4 输出:2示例 2: 输入:x = 8 输…

    2022/4/23 6:21:24 人评论 次浏览
  • cf1103 B. Game with modulo

    题意: 交互题 有个未知整数 \(a\in[1,1e9]\),每次问两个数 \(x,y\),返回 \(x\pmod a \ge y\pmod a\) 是否成立 在 60 次内猜出 \(a\) 思路: 倍增猜法,长见识了 首先我想到猜 \(x,2x\),若 $\ge $ 说明 \(a\in [1,2x]\),否则 \(a\in [1,x)\cup (2x,1e9)\) 这样每次得…

    2022/4/23 6:15:51 人评论 次浏览
  • 减治思想——二分查找详细总结

    减治思想——二分查找详细总结 二分查找应用于有序数组,可以在以\(O(\log(n))\)时间复杂度进行查找。其思想在于利用数组的有序性直接排除掉一些元素,这也是进行“减治”的地方。二分查找思想看起来简单,但是其边界条件其实很容易弄混,下面就对各种情况的二分查找(基…

    2022/4/22 23:43:43 人评论 次浏览
  • 基础算法 788.逆序对的数量

    #include<iostream> using namespace std; const int N = 1e6+10; int n; long long cnt=0; int q[N],tmp[N]; void count(int q[],int l,int r) {if(l>=r)return ;int mid = (l+r)>>1;count(q,l,mid);count(q,mid+1,r);int k=0,i=l,j=mid+1;while(i<=m…

    2022/4/15 12:12:51 人评论 次浏览
  • 基础算法 787.归并排序

    代码模板#include<iostream> using namespace std; const int N = 1e6 + 10; int n; int q[N],tmp[N];void mergesort(int q[],int l,int r){if(l>=r)return ;int mid = (l+r )>> 1;mergesort(q,l,mid);mergesort(q,mid+1,r);int k=0,i=l,j=mid+1;while(i&…

    2022/4/15 1:13:56 人评论 次浏览
  • 【Leetcode】最大子数组和

    采用分治算法, 数组区间[left, right], mid = (right + left) / 2 最大子数组存在于可能的三种情况: [left, mid], [mid + 1, right], 横跨前两个 而第三种情况可以拆成[lb, mid] 和 [mid + 1, ub]的并集class Solution { public:int maxSubArray(vector<int>&a…

    2022/4/12 23:42:54 人评论 次浏览
  • 算法

    二分法查找 二分法用来快速查找一个存在于有序列表里的值 二分法也叫折半查找,对于数据量较大的列表查找非常有帮助,效率非常高 题目链接 大体的模板就是这样int l, r, mid;l = 0, r = nums.size();while(l < r) //直到 l == r的时候停止循环{mid = l + ( (r - l) &g…

    2022/4/12 14:42:27 人评论 次浏览
  • python 实现汉诺塔问题 — 牛客网

    问题描述 我们有由底至上为从大到小放置的 n 个圆盘,和三个柱子(分别为左/中/右即left/mid/right),开始时所有圆盘都放在左边的柱子上,按照汉诺塔游戏的要求我们要把所有的圆盘都移到右边的柱子上,要求一次只能移动一个圆盘,而且大的圆盘不可以放到小的上面。 请实…

    2022/4/11 14:12:52 人评论 次浏览
  • 扫码接口

    https://aipboss.allinpay.com/know/devhelp/main.php?pid=24#mid=184https://aipboss.allinpay.com/know/devhelp/main.php?pid=36#mid=628

    2022/4/10 23:44:04 人评论 次浏览
  • 35. 搜索插入位置

    思路: 又是一个二分查找变种题目。 按照之前的文章总结的二分用法,套就完事儿了。1 /**2 * @param {number[]} nums3 * @param {number} target4 * @return {number}5 */6 var searchInsert = function(nums, target) {7 let left=0, r…

    2022/4/6 23:26:26 人评论 次浏览
  • [nefu]算法设计与分析-锐格实验

    实验一 递归与分治 6104 #include<bits/stdc++.h>using namespace std;int max_num(int a[], int m,int n) {int mid = (m+n)/2;if(m==n) return a[m];else{int maxa = max_num(a, m, mid);int maxb = max_num(a, mid+1, n);return max(maxa, maxb);} }int main(…

    2022/4/6 22:19:15 人评论 次浏览
  • 算法基础⑤

    二分和前缀和 二分 二分简介 二分分为整数二分和实数二分两种, #### 整数二分步骤:1. 找一个区间[L, R],使得答案一定在该区间中 2. 找一个判断条件,使得该判断条件具有二段性,并且答案一定是该二段性的分界点。 3. 分析中点M在该判断条件下是否成立,如果(成立,考…

    2022/4/6 20:49:30 人评论 次浏览
  • java常用查找算法

    java常用查找算法线性查找/*** 找到一个就返回* @param arr 数组* @param value 需要找的数* @return 找的数的下标,没找到为-1*/ public static int seqSearch(int[] arr, int value) {for (int i = 0; i < arr.length; i++) {if (arr[i] == value) {return i;…

    2022/4/6 17:19:56 人评论 次浏览
  • 递归的时间复杂度问题-master公式

    前提:如果一个问题可以拆分为多个等规模的子问题进行递归求解 则其时间复杂度满足master公式: T(n) = a * T(n/b) + O(n^d); 其中T(n)表示问题规模为n的母问题的时间复杂度 T(n/b)表示问题规模拆分为n/b的子问题的时间复杂度a表示子问题在每次递归时的执行的次数(不…

    2022/4/4 23:22:16 人评论 次浏览
扫一扫关注最新编程教程