1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。 输出格式: 两个整数,第一个整数表示读入数据中的奇
*******数组定义******* A:=[] *空数组--[] A1:=[1] *1 A2:=[2,1] *[2,1] A3:=[A1,[1,2,3]] *[1,1,2,3] B:= A3 + 1 *[2,2,3,4] 每一个数加 1 B1:=A3*2 *[2, 2, 4, 6] 每一个数*2 C:=[1,2,3,4,5] B:=[10,20,30,40,50] D:=B+C *
轮廓系数是评估聚类效果的指标,取值范围为[-1,1],越接近1表示聚类效果越好。 在聚类时可用于聚类个数的选择。通过遍历簇数,计算对应轮廓系数,选择轮廓系数最大时对应的聚类模型。 Kmeans聚类:对于初始的中心个数进行遍历,寻找使得轮廓系数最大的聚类模型。层次聚类:每一层合并时计
前言:此题因为考虑到N可能较大,遍历数组将面临超时问题。所以利用分数的范围为0~100为突破口,这样就可以解决超时问题。 1.在输入的时候就统计每个分数的个数,减少for循环的使用,提高效率。 2.利用数组下标作为分数,数组的值为该分数的个数。如:m[71], 71为分数值, m[71]为71分的个数。
实验内容 2.从键盘输入一批整数,统计其中不大于100的非负整数的个数。 实验步骤: (1) 编程提示 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法: ① 使用一个负数
数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例 1: 输入:n = 13 输出:6 示例 2: 输入:n = 0 输出:0 提示: 0 <= n <= 10^9 #include <bits/stdc++.h> using namespace std; class Solution { public: int countDigitOne(int n) {
#include<stdio.h> int A[10001];/*使用动态规划法,开辟数组空间存放每处理完一个B后各种数p划分下的非零段个数,根据题意,p不超过10000*/ int flag[10001];/*flag用于记录非零段是否连续,全局变量初始时默认为零,所以省去了赋初值的步骤*/ int main(){ int n; scanf("%d",&n); in
剑指 Offer 40. 最小的k个数 做这题有很多办法,如果内置了sort函数的语言,就比较简单,可以先排序,再取前k个数即可。 class Solution { public int[] getLeastNumbers(int[] arr, int k) { int[] ans = new int[k]; Arrays.sort(arr); for(int i = 0
题目:1040 有几个PAT (25 分) 来源:PAT (Basic Level) Practice 传送门 1040 有几个PAT 题面 题意:给定字符串,找到其中可以形成几个"PAT"非连续子串 思路: 先扫一遍,得出字符"T"的个数,然后再扫一遍,碰到"P"就把统计p的变量加一,遇到"T"就把统计T的变量减一,遇到"A"就把此时P和T的
此题洛谷题面没有翻译(以后可能会有,以博主发布时间为准),我就简述一下大意吧: 有 \(T\) 组数据,对于每组数据,给定 \(p\) 个数,问 \(p\) 个数中选出一些数,使得和为 \(n\)。 入门题嘛,显然是一个 \(dp\) 题,有点像 \(01\) 背包的模板题。 设 \(l_i\) 为 \(n\) 个数中的第 \(i\) 个,\(j\) 从
给定一棵二叉树,返回二叉树节点的个数。 1.迭代法 即为二叉树的遍历,每遍历一个节点,个数加一。 前序遍历求解本题的具体代码: //使用前序遍历--根左右 int countNodes(TreeNode* root) { int count = 0; if (root == NULL) return 0; stack<TreeNode*> st; while(st!=0) { Tr
给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。 /** 奇偶数计算二进制中1的个数:1.偶数在二进制中最低位为0,所以偶数二进制中1的个数应该与该数/2后1的个数相当2.奇数比前一个相邻的偶数多了1,即二进制
位1的个数 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量(https://baike.baidu.com/item/%E6%B1%89%E6%98%8E%E9%87%8D%E9%87%8F))。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输
描述 给定三个正整数m,n,s问从1到m这m个数里面取n个不同的数,使它们和是s,有多少种取法 输入 多组数据 输入的第一行是整数t,表示有t组数据 此后有t行,每行是一组数据 每组数据就是三个正整数,m,n, s ( n <= 10,s <= 20) 输出 对每组数据,输出答案 样例输入 5 13 4 20 12 5 18 1 1 1
题目链接 给定一个长度为 \(n\) 的序列,求有多少种方案将它划分成若干段,使得每一段中出现恰好一次的元素不超过 \(k\) 个。 \(1\le n\le10^5\) 分块优化 DP 容易想到设 \(f_i\)表示以 \(i\) 为一段结尾时的答案。 那么从 \(j\) 能转移到 \(i\),根据题目的要求,充要条件是 \((j,i]\)
正方形的个数比较容易求
同上一篇,使用堆排序的方式做。 第一步构建最小堆,构建好之后数组的第一个元素就是最小的; 第二步排序,开始执行k-1次sift,每次将剩余元素中最小的元素放到未排序元素的末尾 第三步,将数组的后k个数返回即为数组中最小的k个数。 func getLeastNumbers(arr []int, k int) []int { if k
题目链接 思路:分析+举例 分析:首先,看懂题目规则,谁选完后,已经被选了的数目被3整除,谁就输了,并且都选完,还是不能被3整除,先手也输了。 这里要注意的是,输赢和总数究竟是多少无关,而与这个总数是不是3的倍数有关,所以stones数组中的每个数究竟是多少我们不用管,而需要关心的是,每个数模3
【公众号:深度学习视觉】 ⼀. 单项选择题 1.想要了解上海市⼩学⽣的⾝⾼,需要抽取500个样本,这项调查中的样本是? A.从中抽取的500名学⽣的⾝⾼ B.上海市全部⼩学⽣的⾝⾼ C.从中抽取的500名⼩学⽣ D.上海市全部⼩学⽣ 答案:A 2.以下对k-means聚类算法解释正确的是 A.能⾃动
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?M, N为自然数。说明:如有7个苹果,2个盘子,则(5, 1, 1)和(1, 5, 1)和(1, 1, 5)都是同一种分法。 思路分析 思路一: 我们令f(M)(N)表示M个苹果正好使用N个盘子时的分法个数(当M<N时f(M)(N) = 0)
LeetCode 小水题选做 目录LeetCode 小水题选做4. 寻找两个正序数组的中位数 4. 寻找两个正序数组的中位数 题目链接 题目大意: 给定两个排好序的数组 \(a, b\),长度分别为 \(n, m\)。设 \(c\) 为把 \(a\)、\(b\) 合并后再排好序的数组,求 \(c\) 的中位数。要求时间复杂度 \(\mathcal{
class Solution { public int longestOnes(int[] nums, int k) { int left = 0, right = 0, result = 0; while(right < nums.length){ if(nums[right] == 0){ if(k == 0){ // 若nums[left]一直是1,那么
\(\color{blue}{题目}\) \(传送门:\) https://vijos.org/p/1448 \(\color{blue}{分析}\) \(\color{blue}{基础}\) 总而言之,不想敲线段树 好了,回归正题,首先我们用大暴力思维考虑一下,如果我们每次种树都给其所在区间填上种树的id,之后遍历找上所需区间的不同的树的id是不是就可以知
用Java写N个数求和 测试三一直过不去,看了很多文章发现可能是因为分子分母各自相加时超过longlong的范围,以下代码是没有修改过不了测试三的代码。我通过查找分母之间的最大公倍数然后进行运算。 代码如下: import java.util.Scanner; public class Main { public static vo
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n。 第二行包含 n 个整数,表示整个数列。 输出格式 共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。 数据范围 1≤n≤100000, 0≤数列中元素的