: if i % 2 == 0: print(i) i += 1 def two(): inputnumber = input("请输入数字来判断正负数...print("当前输入数字为 0 不是正数也不是负数!")...elif inputnumber > 0: print(f"{inputnumber} 是正数") else: print(f"{inputnumber...} 是负数") except ValueError: print("输入不是有效的整数,请重新输入") def sanjiaoxing(): inputnumber...c = map(int, inputnumber) # 将输入的三个字符串转换为整数 # 找出最大边和其余两边的和 if a > b and a > c
2021-04-04:给定一个非负数组arr,和一个正数m。 返回arr的所有子序列中累加和%m之后的最大值。 福大大 答案2021-04-04: 自然智慧即可。 1.递归,累加和。...if dp[N-1][j] { ans = getMax(ans, j%m) } } return ans } //3.动态规划,算出所有的模m的累加和...,m也很大 // 但是arr的长度相对不大 func max4(arr []int, m int) int { if len(arr) == 1 { return arr[0]...func NearestIndex2(arr []int, v int) int { L := 0 R := len(arr) - 1 index := -1 // 记录最右的对号...mid + 1 } else { R = mid - 1 } } return index } // 从index出发,最后有边界是end
",&x); if(x>0)zh++; else if(x<0)fu++; else li++; } printf("正数的个数...:%d\n 负数的个数:%d\n零的个数:%d\n",zh,fu,li); }
1.今天遇到一个问题如果输入的是字符串还是整数或者是小数如何将他们区分 首先isdigit()只能用来判断字符串输入的是否是整数,无法判断是否是小数 所以,先判断该字符串是否是整数,如果是返回3, ...不是的话说明是字母或者是小数,然后判断是否是小数,如果是小数的话返回1, 是字母的或其他的话返回2 def is_float(i): if i.isdigit():#只能用来判断整数的字符串...and left.startswith('-'): # 如果小数点左边有- new_left = left.split('-')[-1] # 判断去掉后的还是不是数字...')== 1 and left.startswith('-'):#如果小数点左边有- new_left = left.split('-')[-1]#判断去掉后的还是不是数字...print('输入的是小数请重新输入:') continue else: print("输入的是整数没问题")
题目 给定一个二叉树,检查它是否是镜像对称的。...思路分析 判断二叉树是否镜像对称==>(左子树的右节点等于右子树的左节点)&&(右子树的右节点等于左子树的左节点) 代码 public boolean isSymmetric(TreeNode
2021-05-08:给定两个非负数组x和hp,长度都是N,再给定一个正数range。x有序,x[i]表示i号怪兽在x轴上的位置;hp[i]表示i号怪兽的血量 。...range表示法师如果站在x位置,用AOE技能打到的范围是:[x-range,x+range],被打到的每只怪兽损失1点血量 。返回要把所有怪兽血量清空,至少需要释放多少次AOE技能?...福大大 答案2021-05-08: 1.贪心策略:永远让最左边缘以最优的方式(AOE尽可能往右扩,最让最左边缘盖住目前怪的最左)变成0,也就是选择:一定能覆盖到最左边缘, 但是尽量靠右的中心点。...} coverLeft[i+1] = left + 1 coverRight[i+1] = right } // best[i]: 如果i是最左边缘点...0开始,但在arr里是从1开始的 // sum[]模拟线段树维护区间和 // lazy[]为累加懒惰标记 // change[]为更新的值 // update[]为更新慵懒标记
2022-06-16:给定一个数组arr,含有n个数字,都是非负数, 给定一个正数k, 返回所有子序列中,累加和最小的前k个子序列累加和。 假设K不大,怎么算最快? 来自亚马逊。..., ans); } fn top_min_sum2(arr: &mut Vec, k: i32) -> Vec { arr.sort(); // (最右的下标,集合的累加和
在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。...提示:输入必须是长度为 32 的 二进制串 。进阶:如果多次调用这个函数,你将如何优化你的算法?...思路及解法 循环检查 1.循环检查给定的整数每一位是否为1; 2.将n跟给定的对应位置上的数字进行与运算,如果两个相应的二进制位都为1,则该位的结果值为1,结果加1,否则为0。...它把无符号的 32 位整数所有数位整体右移。对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的。.../返回值-125 console.log(-1000 >>> 3); //返回值536870787 对于负数来说,无符号右移将使用 0 来填充所有的空位,同时会把负数作为正数来处理,所得结果会非常大所以
当明确了 size 的大小之后,对于正数部分我们则有 idx = nums[i] / size。 如何理解负数部分的逻辑?...由于我们处理正数的时候,处理了数值 0,因此我们负数部分是从 -1 开始的。 还是我们上述 ,此时我们有 t = 3 和 size = t + 1 = 4。...这样一来负数部分与正数部分一样,可以被正常分割了。...System.out.println(solution.containsNearbyAlmostDuplicate(nums,1,1)); } } 四、复杂度分析 时间复杂度:O(n),其中 n 是给定数组的长度...每个元素至多被插入哈希表和从哈希表中删除一次,每次操作的时间复杂度均为O(1)。 空间复杂度:O(min(n,k)),其中 n 是给定数组的长度。哈希表中至多包含min(n,k+1) 个元素。
题目描述 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。...输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。...示例 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 示例 3: 输入: [100,-3,-2,-1,50] 输出: 600 示例 4: 输入: [..., 当全都是正数, 解为排序后最后三个数的乘积。...当包含负数时, 因为负数乘负数为正数, 最小的两个负数和最大的一个正数是最优的。 比较选出这两种情况最大的值即可。
函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。...除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。 示例1 输入:s = "42" 输出:42 解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。...符号用于表示最终整数是正数还是负数。 if s and (s[0] == '+' or s[0] == '-'):: 判断第一个字符是否为正号或负号。...判断条件中的 s 是一个非空字符串,因此判断 s 是否为真意味着检查字符串是否为空。 如果第一个字符是 -,将符号变量 sign 设置为负号。...else:: 如果结果没有溢出,返回计算得到的结果作为最终结果。 这个代码段用于将给定的字符串 s 转换为整数。它处理了输入字符串的空格、符号和非数字字符,以及整数溢出的情况,并返回相应的结果。
各位相加 - 力扣(LeetCode) 问题描述: 问题: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。...示例 1: 输入: num = 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 由于2是一位数,所以返回 2。...示例 2: 输入: num = 0 输出: 0 进阶:你可以不使用循环或者递归,在 O(1) 时间复杂度内解决这个问题吗?.../9=……=k; 最后得到结果k就是最后的结果,但是,k的范围是0~8,但是当n>0时,结果应该是1~9....也就是说: 取余:负数取余以后还是负数,正数取余还是正数。 取模:一个数对正数取模还是正数,一个数对负数取模就是负数。
(1)给定一个十进制,求Protocol Buffers的 Varint编码;给定一个16进制的 ZigZag编码,求原码; const readline = require('readline');.../* 关于ZigZag编码: 正数 假设数据类型为byte的正数11,其二进制表示为: 00001011 数据左移一位: 00010110 符号位(正数的符号为0)放到最后一位: 00010110 负数...假设数据类型为byte的负数-11,其二进制在计算机中是用补码表示的,计算过程如下 正数原码: 00001011 反码: 11110100 补码(反码加1): 11110101 处理过程: 左移一位...16进制的输入,判断它是否为有效的 UTF-8序列;以及给定一串16进制,判断里面包含几个 Unicode字符 const readline = require('readline'); const...,无论正负数,前面都补0,负数无符号右移后变成一个很大的正数。
最高位为0表示正数。 最高位为1表示负数 原码 将一个数字转换成二进制就是这个数值的原码。...负数 负数的反码是在原码的基础上,符号位不变 其它位都取反。...1111 1111 1111 1111 1111 1111 1111 1100 补码 仍然分正数和负数两种情况 正数 正数的补码就是原码。...切换给定操作数n的值为1的最右位,可以使用表达式 n & n - 1 还是965 public class Code { public static void main(String[] args...2位 检查某个数是否是2的幂 给定一个数n,检查其是否满足2 ^ n(2的n次方)的形式,可以使用表达式 if (n & n - 1 == 0) 我们使用968来测试一下 public class Code
和可被 K 整除的⼦数组 题目描述: 给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。 子数组 是数组中 连续 的部分。...(这也是本题的核心.) 2. 负数取模 C++和Java中, 负数 % 正数 结果为 负数, 为了防止 重复算,统一将结果化为正数....第二: 具体步骤(与上题无异, 不同的是,此题中map第一个位置放的时前缀和 % k 的值. 并且确保是正数.)...= (sum % k + k) % k;//前缀和模k 的余数,原本是sum % k, 但是Java和C++存在负数模正数等于负数的问题,一并化成正数....示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。
三个数的最大乘积 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。...示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。...输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。 解题思路 方法一:排序 我们将数组进行升序排序,如果数组中所有的元素都是非负数,那么答案即为最后三个元素的乘积。...如果数组中出现了负数,那么我们还需要考虑乘积中包含负数的情况,显然选择最小的两个负数和最大的一个正数是最优的,即为前两个元素与最后一个元素的乘积。 上述两个结果中的较大值就是答案。...注意我们可以不用判断数组中到底有没有正数,0 或者负数,因为上述两个结果实际上已经包含了所有情况,最大值一定在其中。
Problem Description 统计给定的n个数中,负数、零和正数的个数。...Input 输入数据有多组,每组占一行,每行的第一个数是整数n(n的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。...Output 对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
题目描述 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。...示例: 输入: [4,3,2,7,8,2,3,1] 输出: [2,3] 思路 思路一: 直接利用hashmap记录出现次数 思路二: 因为数组输入的特点 1是正数,标为负数表示出现过,如果遇到负数就表示第二次出现,就可以找出所有出现过两次的元素 代码实现 package Array; import java.util.ArrayList...Find All Duplicates in an nums(数组中重复的数据) * 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。...1是正数,标为负数表示出现过,如果遇到负数就表示第二次出现,就可以找出所有出现过两次的元素 * * @param nums
Java/Others) Total Submission(s): 53462 Accepted Submission(s): 27366 Problem Description 统计给定的...n个数中,负数、零和正数的个数。...Input 输入数据有多组,每组占一行,每行的第一个数是整数n(n的数值的个数,然后是n个实数;假设n=0,则表示输入结束,该行不做处理。...Output 对于每组输入数据。输出一行a,b和c。分别表示给定的数据中负数、零和正数的个数。...Sample Input 6 0 1 2 3 -1 0 5 1 2 3 4 0.5 0 Sample Output 1 2 3 0 0 5 注意:不能用数组存数,由于输入的数有可能是小数
领取专属 10元无门槛券
手把手带您无忧上云