1.题目: 2.解析: 解法: 步骤一:创建大根堆,把筛选出偶数数据,然后全部放入大根堆; 步骤二:拿出堆顶元素,从sum中减掉, 减小的值,最后返回sum. num = in.nextLong(); sum += num; if(num % 2 { heap.offer((int)num); } } //拿出堆顶元素,除2, = 0){ long t = heap.poll() / 2; sum -= t; if(t % 2 == 0) heap.offer((int)t); } System.out.print(sum); }
(1)两点间的距离 # 两点间的距离 #tip1:不使用math库 x1,y1=map(float,input().split()) x2,y2=map(float,input().split()) D = ((x2 - x1)**2 + (y2 - y1)**2)**0.5 print("%.4f"%D) #tip2: 使用math库 from math import sqrt x1,y1 = map(float,input().split()) x2,y2 = map(float,input().split()) D = sqrt((x2 - x1)**2 + (y2 - y1)**2) print ("%.4f"%D) (2)钞票 -顺序结构 N = int(input()) print(N) print("%d nota(s) de R$ 100,00 "%(N // 100)) N %= 100 "%(N // 2)) N %= 2 print("%d nota(s) de R$ 1,00 "%(N // 1)) (3)差 #差-顺序结构 A = int(input()) B = int(input
sum=0; vector<int> v; if(n==0) return "0"; for(int i=15;i>=0;i--){ int t = pow(2, } } string s; for(int i=0;i<v.size();i++){ string t ; if(v[i]==1) t = "<em>2</em>" ; else t = "<em>2</em>("+dtob(v[i])+")";//此处是递归 s.append(t); if(i!
第2..T+1行:每行包含三个整数,描述一条边的边长以及构成边的两个点的编号。 输出格式 输出一个整数,表示最短路的长度。 数据范围 2≤T≤100, 2≤N≤10^6 输入样例: 2 6 6 4 11 4 6 4 4 8 8 4 9 6 6 8 2 6 9 3 8 9 输出样例: 10 思路 假设数组d[a][i][ i) res[i][i]=0;//经过0条边只可以到自己 while(k){ if(k&1) add(res,g); add(g,g); k/=2;
例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 if node2.val in list1: return node2 else: node2 <= 0: return s # 将字符串的前n位拼接到字符串的最后即可 return s[n:] + s[:n] 翻转单词顺序列 题目描述 牛客最近来了一个新员工 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2 分析 首先判断边界条件,遍历数组时,使用一个列表去保存遍历过的值,判断当前遍历的元素是否存在列表中,如果存在
例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 (pre1,vin1); root->right=reConstructBinaryTree(pre2,vin2); //} return root; 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 while(index2!
user_profile SQL2 查询所有列 题目地址:查询所有列_牛客题霸_牛客网 (nowcoder.com) 题解: SELECT * FROM user_profile SQL3 查询结果去重 -DISTINCT 题目地址:查询结果去重_牛客题霸_牛客网 (nowcoder.com) 题解1: SELECT DISTINCT university FROM user_profile 题解2: FROM user_profile LIMIT 2 02-条件查询 SQL36 查找后排序-ASC 题目地址:查找后排序_牛客题霸_牛客网 (nowcoder.com) 题解: SELECT device_id male' AND gpa > 3.5 SQL12 高级操作符练习(2)-OR 题目地址:高级操作符练习(2)_牛客题霸_牛客网 (nowcoder.com) 题解: SELECT device_id, AND t2.university='浙江大学' SQL22 统计每个学校的答过题的用户的平均答题数-INNER IN 题目地址:统计每个学校的答过题的用户的平均答题数_牛客题霸_牛客网 (nowcoder.com
题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/9715/B 来源:牛客网 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母 示例1 输入 2,"abcde" 返回值 3 示例2 输入 10,"acesxd" 返回值 4 备注: ? 2. int整型 表示最多的操作次数 * @param s string字符串 表示一个仅包含小写字母的字符串 * @return int整型 */ int string2(
可以参考博文连接: 十分钟进行一个简单的helloworld入门项目 https://blog.csdn.net/weixin_51484460/article/details/119115826
示例1 输入 5 5 4 0 0 2 0 输出 2 解答: 自己的方法:直接全排列,然后计算每个的顺序对数目,提交通过。 剩余数字产生的顺序对数+数字在每个位置的顺序对数 # 获取没有在输入数组中的数组,并且进行全排列,并且每个全排列内的顺序对数 # 给出例子中为:[([1, 3, 5], 3), ([1, 5, 3], 2) , ([3, 1, 5], 2), ([3, 5, 1], 1), ([5, 1, 3], 1), ([5, 3, 1], 0)] def gothrough(result, picked, rest) settlecount += 1 # print(settlecount) # 缺失的数字在每个对应位置时的顺序对数 # 给出例子的结果为:{1: [1, 1, 0], 3: [0, 0, 1], 5: [1, 1, 2]
原题链接 牛客网 替换空格 ---- 二. 解题思路 1. 思路分析 (1) 只借助 str 指向的字符串,从后向前依次移动; (2) 一个空格最后替换成'%''2''0',一个字符替换为三个字符,相当于增加了2个字符; (3) 一个循环统计字符串中空格的个数 end2 下标位置,之后两个下标均减1; (6) 如果下标 end1 的字符是空格, end1 减1,,把'0'、'2'、'%'这三个字符依次存入下标 end2 位置,每次存入后都 end-- ; 2. [end2--] = '0'; str[end2--] = '2'; str[end2--] = '%';
题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/10325/A 来源:牛客网 现在给定一个数组arr,和a,b两个数字,你要做的就是找到(i,j,k)。 且满足 1. 0 <= i < j < k < arr.size() 2. |arr[i] - arr[j]| <= a 3. arr.size() <= 5000 其余变量均<=1e9 2. ) O(n^2) O(n2) class Solution { public: /**
示例1 输入 4 4 3332 3233 3332 2323 输出 2 解答 N, M = [int(each) for each in input().split()] mat = [[int(each sums[x0][y1] - sums[x1][y0] + sums[x0][y0] def judge(mat, N, M, val): for r1 in range(1, N - 2) : if sum_grid(0, 0, r1, M) < 4 * val: continue for r2 in range(r1 + 1, N - 1): if sum_grid(r1, 0, r2, M) < 4 * val: continue for r3 in range(r2 + 1, N): if sum_grid(r2, 0, r3, M) < 4 * val: continue if sum_grid(r3, 0, N, M) < 4 * val: continue
题目: 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 indexFive = 0 for i in range(index-1): newUgly = min(uglyList[indexTwo]*2, indexThree]*3, uglyList[indexFive]*5) uglyList.append(newUgly) if (newUgly % 2
小明同学发现,这段程序恰好按顺序输出了1,2,3,...,n。现在小明想让你构造出原始的队列,你能做到吗? 示例1 输入 4 1 2 3 10 输出 1 2 1 2 1 3 8 1 6 2 10 3 7 4 9 5 题目解析: 构造队列 利用逆向思维, 题目中的操作是,把队首元素移到队尾,然后弹出队首元素
问题描述 最近由于期末考试结束,时间也相对比较轻松,所以最近去看了一下牛客网上面的一些题,偶尔做了一些练习题,对之前的知识点有一个复习。
else s = s + str.charAt(i); } return s; } } 解题2 所以现在的问题无非是移动多少的问题 //因为是 ' ' -> "%20",是1换3,所以可以先统计原字符串中空格的个数(设为n),然后可以计算出新字符串的长度 //所以:new_length = old_length + 2* n++; } //设置新的字符串的长度 int new_len = str.length()+(n*2) 就从当前空格的位置往后移动进行替换 str.setCharAt(new_end--,'0'); str.setCharAt(new_end--,'2'
1. python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值? sys.argv是传递给python脚本的命令行参数【字符串】列表 argv[0]为该脚本自身路径,其余为命令行参数 2. 以”\0”结尾是C/C++中存在,在python中不存在 3. python中主要存在四种命名方式: 1、object #公用方法 2、_object #半保护 #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量
示例1 输入 3 0 fang 90 yang 50 ning 70 输出 fang 90 ning 70 yang 50 感觉好坑啊,也没人说要永远循环下去呀~· 可能是我读题脑子有问题 1 2 struct stu{ int num; int score; string name; }; bool cm1(stu s1,stu s2) =s2.score){ return s1.score<s2.score; }return s1.num<s2.num; } bool cm0(stu s1,stu s2){ if(s1.score! =s2.score){ return s1.score>s2.score; }return s1.num<s2.num; } int main()
例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从 输入描述: 输入第一行为数字个数n (n ≤ 20) 第二行为n个数xi (1 ≤ xi ≤ 100000) 输出描述: 输出最小不能由n个数选取求和组成的数 示例1 输入 3 5 1 2 输出 4 自己开始的想法是求所有子集