A 面试 纯模拟 for _ in range(int(input())): s=input() if s.count("D")>=1 or s.count("C")>=2: print("failed&
B 纸牌游戏 这个题一时冲动用写的,结果写了个死循环。。思维题,先给数组升序,让他们有单调的性质,方便后面处理。从第一个人开始,他可以拿个牌,后面的每一个人都可以从第一个人这里拿张牌,所以显而易见,我们需要比较两个值的大小和(他左边的人数) 如果 ,说明这个人终究会被淘汰,拿的牌比被拿的牌少。 如
C 纸牌游戏 时,这时的的还没被淘汰,所以还得加上 时,这时的已经被淘汰了,所以降序排序后,就一直取前的数即可,快速幂写一下就行了。 #include<bits/stdc++.h> #pragma GCC optimize(2) #pragma GCC optimize(3) #pr
起床困难综合症 题目大意 就是问你 中那个数在经过一系列的位运算操作后得到的答案最大 分析 那么就是可以考虑最开始每一位为 ,然后到最后是否可以变回 从高位到低位依次枚举,优先考虑从 变为 ,就是说尽可能的让这个数小一点 用两个数 分别表示所有位置都为 和所有位置都为 如果经过了一系列操
分析 做法非常多,有 的。好像复杂度都是 的。这里提供一种广义后缀自动机的做法。这里采用了绝对没有空节点的在线做法,空间为线性 。 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 10; char
一、无继承性的属性 1、display:规定元素应该生成的框的类型 2、文本属性: vertical-align:垂直文本对齐 text-decoration:规定添加到文本的装饰 text-shadow:文本阴影效果 white-space:空白符的处理 unicode-bidi:设置文本的方向
set牛逼,简单记录一下set的find函数,因为set是红黑树维护的,且set里面的元素是按照从小到大排序的,所以set的find函数比vector的find函数省很多时间复杂度。 vector的find函数还要用到迭代器,而set可以直接.find()就可以了(更加方便),里面不写范围,固定是一
题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 思路:快排 + 二分用快速排序思想把数组按降序排列,第K大元素的下标就是 targetPos = K-1(如果按升序排列数组,
Solution 考虑位运算的特点:不进位。 于是可以将答案的每一位分开考虑。从高位到低位枚举每一位所选的 情况。若当前位第 位经过一系列运算后结果可以为 ,那就将答案加上 。由于枚举时由高到低,贪心地使高位为 即可(第 位贡献的答案比第 位到第 位贡献的和还要多)。注意累加值不超过
飞扬的小鸟 分析 直接进入正题 单取一个位置来看,假设当前为第 i 列,高度为 j ,这个高度要么是从位置 i - 1 落下来,要么则是点击屏幕飞上来的,这难道不是一个状态转移方程?即枚举当前位置和高度,设为f [ i ] [ j ],则 但是注意,这个空间是有限的——高度不可能低于1或高于
递归解法,利用递归找到最后的结点,并且用ret记录,最后返回它。当递归执行到返回最后一个结点后,此时pHead结点是倒数第二个结点,由于在递归前并没有改变此链表的结构,此时倒数第二个结点依旧指向最后一个结点,改变它的指向,让最后一个结点指向它。翻转后两个结点结束后,倒数第三个结点依旧保留着和倒数第二
1.事务的基本要素(ACID) (1)原子性(atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没发生过一样。例如:A账户中有1000元,B账户中有1000元。A要给B转账500元
分析 由于混合位运算并不具备结合律,所以我们应该是不能强制将式子化简的。但是我们考虑位运算的本质。举一个例子 运算,我们如果完整的写出表达式为 我们可以发现,其实位运算的结果只取决于每一位,而并不是整个数字的值。那么我们可以按位考虑每一位,其实按位考虑也是解决关于位运算问题的一种常见方法。我们可
题目链接 下面的题解转于传送门对于想要学习区间修改和单点输出的同学们可以去看这篇文章 传送门 假设数组a是原数组,b是a的差分数组,由前缀和的定义,我们求前n个元素的和,即 详细过程如下:a1 + a2 + ... + an = b1 + (b1 + b2) + ....+ (b1 + b2
题目描述 请判断一个链表是否为回文链表。请采用 O(n) 的时间复杂度和 O(1) 的空间复杂度进行求解。 题目分析 如果是数组,很显然采用双指针,分别从前和后两段同时遍历即可但是链表面临着两个问题1、链表的长度2、单链表,没有从后向前遍历的方法那么需要解决这两个问题1、首先需要查找到链表
做法:位运算 思路: 确定攻击的每一位填1还是填0填1必须满足:该位为1了以后总和不能大于最大的攻击力填1了之后运算过后答案的二进制位上还是1 其余情况填1也会变成0,否则就大于了m,还不如填0有效 代码 #include <bits/stdc++.h> using namespace
题意 你有次机会,可以选择是否对原数与进行与、或、异或三种操作之一(已指定),求最后的最大值是多少? 分析 因为位运算每一位之间是独立的,所以我们可以贪心的选择。我们知道在二进制下数位越高代表的值越大,所以我们只需要从高位到低位贪心的是其尽可能的为。 做法 我用和两个变量表示二进制每一位全为和全为经
1.介绍一下redis 简单介绍:Redis是一款开源的、基于内存、单线程的高速缓存数据库。使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。我们在项目中经常使用redis作为缓存数据库
iframe可用在以下几个场景中:1:典型系统结构,左侧是功能树,右侧就是一些常见的table或者表单之类的。为了每一个功能,单独分离出来,采用iframe。2:ajax上传文件。3:加载别的网站内容,例如google广告,网站流量分析。4: 在上传图片时,不用flash实现无刷新。5: 跨域访问的
svg是什么? SVG 指可伸缩矢量图形 (Scalable Vector Graphics)。SVG 用来定义用于网络的基于矢量的图形。SVG 使用 XML 格式定义图形。SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失。SVG 是万维网联盟的标准。SVG 与诸如 DOM 和 XSL 之
TOYS-POJ2318 简单几何,叉乘 题意 把一个盒子用m个隔板隔开,给定n个点的坐标,问每一个区域中各有多少个点 思路 利用向量叉乘判断点在线的哪一边,当叉乘小于等于0时,点在线的左边,否则在右边 题目中 You may assume that the cardboard p
[Codeforces Round #640 (Div. 4)]题解 第一次出现div4去凑凑热闹玩玩,下面是题解。 A-Sum of Round Numbers 题意:给定n,判断n由几个Round Number(除了数字第一位其他都是0的数字)构成,输出个数和这几个Round Number
随便聊聊和立立flag 因为某种原因,搞得我其实最近精神状态一直不太好,不过还好有这样的一个缓冲期,隔离在家两个月,摸鱼了两个月,也算是疗伤吧。 1.整理这周讲的字符串匹配 因为我自己也不是字符串选手,平时写的也不是很多,这次给学弟学妹讲课算是一个双方受益的过程吧。整理一下东西到时候发
题目还是考细节,有两次评C,字符串中C的个数应该大于等于2;四轮中有一次发挥被评为 D,说明字符串中D的个数大于1。 思路:用一个数组标记一下,再模拟题目就可以了 #include<bits/stdc++.h> using namespace std;
字符串Hash 字符串Hash可以通俗的理解为,把一个字符串转换为一个整数。 最后构造成理想状态下的一个整数→字符串的单射。所以问题就是如何构造Hash函数,使他成为一个单射。 有几种方法,分别是自然溢出方法,单Hash方法和双Hash方法。 我们规定 i n d e x ( x ) =
Codeforces 1062B Math题解 题解: 分解质因数 n = p 1 a 1 p 2 a 2 . . . p k a k , 发 现 求 p 1 p 2 . . . p k 即 可 n=p_1^{a_1}p_2^{a_2}...p_k^{a^k},发现求p_1p_2...p_k即
Codeforces 1062D Fun with Integers题解 题意: 给定n,从2到n这个区间找任意两个数,使得一个数是另一个的因子,绝对值小的可以变为绝对值大的 求变化过程所乘的倍数绝对值之和 思路: 直接在范围内找出倍数并保存倍数 注意因为会出现重复的情况,所以直接乘2就好
Codeforces 1062C Banh-mi题解 思路: 每 次 吃 x i 最 大 的 食 物 每次吃x_i最大的食物 每次吃xi最大的食物 假 设 初 始 区 间 内 有 a 个 1 , b 个 0 , 那 么 先 吃 完 所 有 初 始 美 味 为 1 的 食 物 , 得 到 喜
牛客小白月赛21 A,C,G,I解题记 A------Audio 思路:给你三个点求一个过这三点的圆的圆心的坐标,取两对点求每对点的中垂线方程,求其交点即可。 代码:十分简单粗暴利用两点式和斜截式即可。l1,l2分别是第一条,第二条中垂线的斜率,b1,b2分别对应两个中垂线方程斜截式中的b
A - 快乐打雪仗 CodeForces - 1287A 思路:暴力搜索,每个愤怒的学生身前连续个不愤怒的学生人数的最大值即可 #include<cstdio> #include<iostream> #include<string> #include<a
思路 x个8连在一起可以写成8*(10x-1)9,假设d=gcd(L,8)。那么题目可以表达为:L | 8(10x-1)9 接下来我们做一些简单的式子变形: L | 8(10x-1)/9 ←→ L9 | 8(10x-1) ←→ 9L/d | (10x-1) ←→ 10x ≡ 1 (mod 9L/d
弗洛伊德判圈法 如果一个有限状态机,迭代函数或者链表上存在环,那么在某个环上以不同速度跑路的两个指针必定会相遇。 一般一个步长1,一个步长2即可 对于本题判断相遇点是否为1即可。 #include<cstdio> using namespace std; class Solutio
题面 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具***置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,
给一个 T3 的不用主席树的简易做法。 建线段树,对每个点维护一个值 和一个有序 pair 列表,表示这个点对应的区间做完合并后,可以覆盖的区间为 ,且剩余的待合并的数为 。 这个列表的意义是:如果 增大到某个不小于 的 ,那么新的可覆盖区间会变成 ,但这时仍然有 。 对于 的定义类似:如果
Time Limit: 10 Sec Memory Limit: 128 MB Description FarmerJohn要带着他的N头奶牛,方便起见编号为1…N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重 量为wi,才艺水平为ti,两者都是整数。在到达时,FarmerJohn就被今年达
思路 这是一道思维。比赛时候推的错结论WA了十几次。。。。 赛后学习一下Dearmoon的代码,很巧妙 就是从后开始枚举t,看看t的后缀能不能由s串进行多次翻转后得到。。。 #include<cstdio> #include<cstring> #include<
链接:https://ac.nowcoder.com/acm/contest/93/I?&headNav=www 来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描
01分数规划的裸题,式子可以变形为 ∑ ( a i − x ∗ b i ) \sum(a_i-x*b_i) ∑(ai−x∗bi) 之后对x进行二分即可 #include<cstdio> #include<climits> #include<iostream>
Recently Ivan the Fool decided to become smarter and study the probability theory. He thinks that he understands the subject fairly well, and so he be
本题最大的坑在于: windows环境下的换行符为\r\n,linux环境的换行符为\n. 我们再来看看洛谷的部分OJ判题机数据和机制 常见“我在本地/xxOJ AC了、洛谷却不过”的原因 Linux中换行符是’\n’而Windows中是’\r\n’(多一个字符),有些数据在Windows中
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5999 The Third Cup is free Panda and his friends were hiking in the forest. They came across a coffee
暂时摆脱了ACM严格的输出要求束缚,现在终于也可以瞎搞了。现在随着课堂实验写一写抽象数据类型了,话不多说上代码。 ps:因为输入输出可以自己瞎鸡儿搞,所以用了很多输出语句显得代码很冗长,但是实际上上全部都是c的基础,请读者耐心观看。 pps:写博客时MarkDown有些卡顿,不知道什么原因导致代码
原题: UvaOJ:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=830&page=show_problem&problem=3666 VJ:https:/
福哥答案2020-10-21:
A:面试简单的模拟,把题目意思翻译一下就是A大于等于3的时候输出sp offer,有2个C或者出现D则failed,否则输出offer #include<bits/stdc++.h> using namespace std; typedef long long ll; const int
B:纸牌游戏因为所有人都想要尽可能少人,所以只有当且仅当每个人都能从别人拿刚好拿走1张牌的时候是人数最大的情况。对于此情况从小到大排个序a[i]>=i的时候n-i+1就是答案,比赛的时候写复杂了写了个树状数组,1到a[i]全部+1,只要查询单点大于i就行。 #include<bits/s
C:涨薪 贪心加快速幂。 每次选最大的x个人涨薪3倍,其次y个人涨薪2倍,特判下m<2的时候把其他人的薪水加上即可,如果大于2就是0。 最后答案就是前X人的和乘以3^m+X人后的y个人的和乘以2^m加上特判的薪水。 #include<bits/stdc++.h> using nam
D:变换 先把所有数去除掉他们的最大公约数,这个数不影响答案。 然后剩下所有的数求出他们的素数因子,素数因子的个数就是答案。 如5 6 7就是选5让其他数都乘以5,选6其他数都乘以2,再乘以3,选7再让其他数都乘以7.可以保证这个是最优解。 #include<bits/stdc++.h>
题目大意:给你一棵树,树上有个特殊点,问有多少点到所有特殊点的距离小于d.思路:又是学习大佬题解的一天我好菜啊先对特殊点求一个树的直径,然后枚举所有点,如果它到直径两端的距离小于等于d,说明这些点满足题目要求。求特殊点的直径,三次DFS即可,先从根求一波最长的特殊点,然后从特殊的再求一波最长的另外一
1、判别式模型于生成式模型的区别以及常见模型?2、机器学习中的最优化方法有哪些,优点缺点都是什么?3、主要的聚类算法有哪些?有点缺点?4、节点的度,出度入度5、满二叉树与完全二叉树6、满二叉树节点数与深度的关系2^k-1,叶子节点个数2^(k-1)
pj D 变换 感觉跟tgT1一个难度不甘心的同学可以先看Frist Step自己再想想 题面(我看到的版本): 一个数不变,其他数乘上一个素数 Solution: First Step: 既然是素数,肯定是与质因子有关,像位运算中将每一位分开讨论一样,有质因子也将每个质因子分开讨论(这是套路),一
<Resources cachingAllowed="true" cacheMaxSize="1000000" />
题目描述 第一行输入 n m d 三个整数,数量级是 1e5。n 代表有n个节点的树,m 代表存在 m 个特殊的节点,这些节点被感染了。在下面 n - 1 行给出对应的树边关系。现在询问的是,在这棵树中存在几个节点到全部被感染的节点距离都要小于等于 d 。 Solution 对于输入的被感染节点,我
链接:https://ac.nowcoder.com/acm/problem/18947来源:牛客网 题目描述小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走
先确定一个数,然后第二个数用一个指针从前到后遍历,第三个数用一个指针,从后到前遍历; 计算结果,然后去重。 去重的核心思想是判定下一个数是否跟当前的数一致,一致则跳过。当然,前提是不能越界。 /** * * @param num int整型一维数组 * @return int整型二维数组
set 和 get的时候要先看在不在hash表中,在的话,从list和hash表中移除,再重新添加进list头部和hash表。另外添加元素的时候要注意超过容量就从list尾部淘汰元素,并删除hash表中对应的元素。stl list的iterator是可以保存的,List添加删除元素不会导致其他ite
题目描述面试题19 正则表达式匹配请实现一个函数用来匹配包括'.'和''的正则表达式。模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"
在Tomcat配置中加入 -Dfile.encoding=UTF-8最后点击应用、保存 最后还要在idea中配置编码 如果是浏览器乱码那就是编码格式没设置了,如果是jsp 记得前端代码最前头加上这个。 <%@ page contentType="text/html;charset
经典BFS。 /* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * * @param root TreeNode类
题目:实现函数 int sqrt(int x).计算并返回x的平方根 解法一: C语言: class Solution { public: /** * * @param x int整型 * @return int整型 *
1.并查集合 基本结构 大部分资料参考Awen同学和左同学,在这里表示感谢并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作: isSameSet(find):
分析 我们发现难点其实是在如何处理距离为 的节点也可以匹配的问题。我们可以把四个字符拆开,一样的我们定义一个新的距离函数就可以了 。那么按照套路反转 或者 。我们就得到了一个卷积形式,那么最后的时间复杂度为 。 代码 #include<bits/stdc++.h> using
解决方法 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { p
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}
题目链接 https://ac.nowcoder.com/acm/contest/7606/B 解题思路 每个人的回合要淘汰尽可能多的人,所以肯定优先淘汰手牌少的。谁的手牌少?那些抽得的手牌数比被抽走的手牌数少的人吧。我们根据抽取数量的多少从小到大将他们排序,顺序遍历,因为我们要先淘汰容易淘汰的吧,
题目让求最小值,这种只求最小(大)值而不要方案的一般都跟动态规划有关。所以这题也可考虑用DP解。 题目要求有n-1个点时的最短Hamilton路径,而如果我们能先求出有n-2号点时的最短路径,就只需找出这n-2个点中那个点到n-1号点最近就行了。这就是本题的一个子问题,显然有n-1个点时的最优解可以
Book of Evil 分析 如果想要作为一个放置点,那么一个点距离一个魔鬼的最大值不能超过 d 。考虑到最大距离的产生方式——子树内部以及外部。那么可以分两步做 求出一个节点距离子树内部的鬼的最远距离从叶子结点更新到根节点 开始更新子树外的最远距离,dfs一遍,从上往下更新。 更新方式:记
题目链接 https://ac.nowcoder.com/acm/contest/7606/C 解题思路 开始看到这个题,感觉好难啊,到底怎么贪心啊,变的这么多。结果发现居然做出来了,就是少了个细节少了10分。对于每年的加薪,我们有两种选择,可以一群人加薪,另一群不加,下一年再给上一次加薪的继续加薪
//递归解法比较直接好想,不过递归会使用栈空间O(logk) package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /**
头和尾合并lists[0], lists[n-1]; 把lists[n-1]合并到lists[0]上lists[1], lists[n-2]...直到数组长度为1 package main import . "nc_tools" /* * type ListNode struc
题解 // 树的子结构 bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { // 初始化:树A和树B的根节点pRoot1, pRoot2 // 遍历树A,cur指
起床困难综合症 分析 为什么有人说他是dp呢可以发现直接枚举m可以得到30分的好成绩ヽ( ̄▽ ̄)ノ虽然m不能枚举完,但是把其表示成二进制枚举每一位还是可以做到的。因为每一位只有0|1的情况,根据贪心,从高位开始,判定每一位为0|1能否造成伤害,肯定是先判定0能否使这一位最终答案为1,否则去判断1能
题目描述 给出 n 个操作,操作顺序不能改变,方便对于 与,或,异或 三种运算符。还有一个整数 m 代表我可选择的起始值为,我需要找到一个合理的取值,再进行了 n 次操作之后值最大。 Solution 看见位运算,就要边往按位求值方向去靠。我们的预期就是首先保证最后操作之后尽可能是 1 ,第二起始值
一、个人情况 本科专业自动化,软开0基础,嵌入式方面做过一点。硕士中部某中等985,专业控制科学与工程,研究方向偏理论。2019年确定找软开,前期想着找cpp方向,但是也没咋准备,断断续续就刷过牛客cpp方向的一些选择题,属于看了就忘那种,没啥用。2019年年底,大概11月左右确定找Java开
每K个一组。可以看成子问题,递归解决。 把问题分成两半,一半是我们要翻转手头上的K个节点,另一半是翻转后面的节点。 假设后面的节点已经翻转完毕,那么只需要把前K个翻转后的尾节点与 另一个半的头结点相连,然后返回当前的头结点,就可以了。 而关键的如何翻转后面的节点,就是递归,看成子问题了。 而翻转K个
1.进程规划 原则: ①核心进程尽量分散 ②同质进程尽量分散2.集群间复制①scp scp -r 源文件的用户名@主机名:源文件路径 目标文件的用户名@主机名:目标文件路径 特点: 全量复制 ②rsync rsync -rvlt 源文件路径 目标文件的用户名@主机名
稍微复杂的换根 DP,我能一发 A 掉的还是不多的... 题目大意 给出一棵有 个结点的树,其中 个结点 作特殊标记,令 代表结点 到 简单路径上边数,求有多少个点 ,满足 题解 不妨令 为根。 考虑结点 的最远标记点,可以在 的子树 内,也可以在 的子树外。 对这两种情
function duplicates(arr) { let a = []; function isHave(arr, item) { //判断数组中是否有item for (let i
时间:2020年10月22日10:39:18原文地址:https://blog.csdn.net/honghailiang888/article/details/52681777一、 概念 Log4jApache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制
function findAllOccurrences(arr, target) { let retArray=[]; for(let i=0;i<arr.length;i++){ if(arr[i]===target){ retArra
clion cuda哈哈哈 既然决定了方向,那C++就应该好好学下去!!! 配置CLion的C++环境 MINGW是什么……ToolChain找不到…… https://zhuanlan.zhihu.com/p/66197013 。。。 我还是去折腾linux下的开发环境吧……Win
class Solution { public: void merge(int A[], int m, int B[], int n) { int ia = 0; int ib = 0; while (ia < m &&
配图来自Canva 近日爱点击集团宣布增持畅移科技,表示会“将畅移在社交电商解决方案领域的专长、爱点击卓越的数据分析能力和双方的客户基础和资源,进行有机融合并发挥综效。” 爱点击集团是一家提供独立在线营销和企业数字化运营解决方案的服务供应商,已于2017年在美国纳斯达克上市,而畅移是一家国内领先的智
A题 面试 思路:直接进行一个处理,先根据输入计算出四次机会下来获得的评级A,B,C,D的个数,然后根据题目的要求进行一个相应的处理即可。代码: #include<iostream> #include<queue> #include<algorithm> #inc
算法 1.双指针遍历,name指针和typed指针分别从两个字符串的第一个字符开始遍历,终止遍历的条件是typed指针遍历结束 2.当name的指针没有遍历结束时,比较两指针的字符是否相等 2.1如果相等,都加1移到下一个字符 2.2如果不相等,再看typed的指针是否是长按导致的重复字符,如果是就
import java.util.*; class Point{ public int x; public int y; public Point(int x,int y){ this.x=x; this
题目大意:有n个操作(只包含&,|,^),然后要你从0-m选一个数,使得这个数经过n个操作后数值最大。思路:考虑二进制,最后的答案转化为二进制,每一位要么选要么不选,然后我们贪心的从最高位选,能选则选。我们可以用一个全0bitset和全1bitset去经过n次操作,然后从2的最高位开始枚举,
题意:选一个小于m的数,始得他经过一系列位运算后值最大。题解:因为数特别大,所以无法用暴力解决。一开始想了贪心,不过只考虑了用111111111111这样的二进制过一遍然后检查得到的数,忘了可以用0过一遍了。看了大佬的题解才恍然大悟,因为这题基础是位运算,所以我们我们把每一位拆开进行判断。贪心这个想
算法 滑动窗口 1.初始化区间左右范围start=0,end=0 2.从第一个字符开始遍历,每次找到相同字符的lastIndex;如果比end大,更新end 3.当遍历到end时,划分一个区间,同时更新区间的左范围start=end+1 public static void main(
1. get、post请求有什么区别? 参考回答: 1)区别1:操作数据方式不同 get是从服务器获取数据 post是把需要处理的数据提交到服务器上 2)区别2:传参方式及长度限制 get参数通过url传递,参数衔接在url后面,而url的长度根据浏览器及服务器的不同
解题思路参考代码中的注释: /** * Definition for singly-linked list. * public class ListNode { * &n
^为异或,计算时先把两个数转换为二进制,再进行计算。两个不同的值异或结果为1,两个相同的数异或后值为0所以判断Int型数组中的唯一值,就用异或来把数组中的每一个值进行比较即可。示例: /** * ^为异或,计算时先把两个数转换为二进制,再进行计算。 * 两个不同的值异或结
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号