精华内容
下载资源
问答
  • 编程笔试(解析及代码实现):求不重复数字之和给定一整型数字,里面有且仅有两个数字值出现了一,其他的数字都出现了两。请写出程序求出这两只出现了一数字之和 目录 题目描述 代码实现 ...

    编程笔试(解析及代码实现):求不重复数字之和给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次。请写出程序求出这两个只出现了一次的数字之和

    目录

    题目描述

    代码实现


    题目描述

    求不重复数字之和
    给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次。请写出程序求出这两个只出现了一次的数字之和。
    输入描述:第一行维数组长度为N,接下来一行为一组N整型数字,用空格作为分隔符。
    输出描述:输出一个整型数字。

    样例输入
    4
    2 6 3 3
    样例输出
    8

    提示:考虑利用异或的特性解题

    代码实现

    
    '''
    求不重复数字之和
    给定一组
    展开全文
  • 题目要求:将1~9这9个数字分成三,每中的三数排成一三位的完全平方数,要求每个数字必须且只能用一 。 思路如下: 1、先造一数组num[]用来标记1到9这几个数字是否已经被使用过。比如:num[1] = 0,表示&...

    题目要求:将1~9这9个数字分成三组,每组中的三个数排成一个三位的完全平方数,要求每个数字必须且只能用一次 。
    思路如下:
    1、先造一个数组num[]用来标记1到9这几个数字是否已经被使用过。比如:num[1] = 0,表示"1" 还没被使用过,而 num[1] = 1,则表示"1"前面已经用过了,要重新取数。 每次取数之前都判断一下要取的数对应的num[]标志,这样就解决了 “每个数字必须且只能用一次” 。
    2、然后是要造一个三位的数,用三层嵌套循环,比如第一层是遍历百位的数 ,从“1”到“9”一直遍历取数字,后面两层同理,最后造的三位数等于:100x百位的数字+10x十位的数字 +个位的数字;
    3、得到一个没有重复数字的三位数后就要判断此数是否为完全平方数。判断的方法很简单,就是判断此数的开方是不是整数,是的话就说明这个数是完全平方数,然后把它打印出来。
    重复2、3步的操作,执行程序完后输出的三个数是: 169 256 324

    #include <stdio.h> 
    #include <math.h>
     
    int judge_perfect_square(int x){
    	if (sqrt(x) == (int)sqrt(x))
    		return 1;
    	else
    		return 0;
    }
    main(){
    	int i, x, y, z, ps, num[10];
    										
    	for(i = 1; i < 10; i++)				//Initialize num[] 
    		num[i] = 0;
    		
    	for(x = 1; x < 10; x++){			//hundreds
    		if(num[x] == 1)					//judge whether the number has already been taken
    			continue;
    		num[x] = 1; 					//Make a mark
    		for(y = 1; y < 10; y++){		//tens 
    			if(num[y] == 1)				//Judge whether the number has already been taken
    				continue;
    			num[y] = 1;					//Make a mark
    			for(z = 1; z < 10; z++){	//units
    				if(num[z] == 1)			//Judge whether the number has already been taken
    					continue;
    				num[z] = 1;				//Make a mark
    				ps = 100*x + 10*y + z; 	//the three-digit number
    				if(judge_perfect_square(ps)) //Judge whether the number is perfect square
    					printf("%d  ", ps);		  				
    				else
    					num[z] = 0; 		//clear the mark if the number is not a perfect square
    			}
    			num[y] = 0;
    		}
    		num[x] = 0;
    	}
    }
    
    展开全文
  • 首先我们考虑这问题的一简单版本:一数组里除了一个数字之外,其他的数字都出现了两。请写程序找出这只出现一数字。 这题目的突破口在哪里?题目为什么要强调有一个数字出现一,其他的...

     

    题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。

    分析:这是一道很新颖的关于位运算的面试题。

    首先我们考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。

    这个题目的突破口在哪里?题目为什么要强调有一个数字出现一次,其他的出现两次?我们想到了异或运算的性质:任何一个数字异或它自己都等于0。也就是说,如果我们从头到尾依次异或数组中的每一个数字,那么最终的结果刚好是那个只出现依次的数字,因为那些出现两次的数字全部在异或中抵消掉了。

    有了上面简单问题的解决方案之后,我们回到原始的问题。如果能够把原数组分为两个子数组。在每个子数组中,包含一个只出现一次的数字,而其他数字都出现两次。如果能够这样拆分原数组,按照前面的办法就是分别求出这两个只出现一次的数字了。

    我们还是从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字肯定不一样,那么这个异或结果肯定不为0,也就是说在这个结果数字的二进制表示中至少就有一位为1。我们在结果数字中找到第一个为1的位的位置,记为第N位。现在我们以第N位是不是1为标准把原数组中的数字分成两个子数组,第一个子数组中每个数字的第N位都为1,而第二个子数组的每个数字的第N位都为0。

    现在我们已经把原数组分成了两个子数组,每个子数组都包含一个只出现一次的数字,而其他数字都出现了两次。因此到此为止,所有的问题我们都已经解决。

    基于上述思路,我们不难写出如下代码:

     

    PS:关键词->相同数字异或结果为0,并根据所有元素异或结果第一个出现0的位置把数组分为2部分!!!

    展开全文
  • 给定一整数数,返回两个数字的索引,使它们相加到一特定的目标。 您可以假设每输入都只有一解决方案,而您可能不会使用相同的元素两

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    (译:给定一个整数数组,返回两个数字的索引,使它们相加得到一个特定目标值。
    您可以假设每个输入都只有一个解决方案,而您可能不会使用相同的元素两次。)

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].

    实现:用hashmap实现是比较方便的,可以用函数直接找出是否包含某一数值

    import java.util.HashMap;
    import java.util.Map;
    
    public class twoSum {
    	public static int[] twoSum(int[] nums, int target) {
    		int[] result = new int[2];
            Map<Integer,Integer> map = new HashMap();
            for(int i=0; i<nums.length; i++){
                if(map.containsKey(target - nums[i])){
                	if(map.get(target - nums[i]) > i){
                		result[0] = i;
                		result[1] = map.get(target - nums[i]);
                	}else{
                		result[1] = i;
                		result[0] = map.get(target - nums[i]);
                	}
                	return result;
                }
                map.put(nums[i], i);
            }
            return result;
        }
    	
    	public static void main(String[] args) {
    		int[] nums = {3,2,4};
    		int target = 6;
    		int[] result = new int[2];
    		result = twoSum(nums,target);
    		System.out.println(result[0] + " " + result[1]);
    	}
    }

    展开全文
  • 首先,我们知道两相同的数字进行异或操作时为0,如果题目里面只有一个数字出现一的话,我们就可以直接对数中的所有数字进行异或操作,最后得到的数字就是单独出现的那个数字,但是题目中给的是2出现一的...
  • 把1,2,3,4,5,6,7,8,9共九数分成三构成排列a1a2a3,a4a5a6,a7a8a9,而且每个数字使用有且仅有一,构成的排列之比为3:2:1,求输出所有的排列组合。 方法一: 显然a1a2a3,a4a5a6,a7a8a9在[123, 987...
  • 比如(0, 1, 2) 列出这三个数字的任意组合,组合长度为3: 000,001,002,100,101,102..... 需要一算法,特此记录 使用递归完成,随着可选数字的增多,需要的时间也大大增加,当需要11电话号码的所有组合,则有10的10次方...
  • Python中将一个数字字符串转化为数 做一道leetcode题目时遇到一情况,将一个数字字符串转化为数,也就是 Input : str_a = "976" Output : array_a = [9, 7, 6] 借助map()函数,因为字符串可视...
  • 题目:用1、2、2、3、4、5这六个数字,用Java写一main函数,打印出所有不同的排列,如512234、412345等,要求:4不能在第三位,3与5不能相连。题目中的排列412345,有两4,应该是有问题的。知道就行,不管了
  • 题目描述 一整型数组里除了两个数字...例如输入数组{2,4,3,6,3,2,5,5},因为只有4,6这两个数字只出现一,其他数字都出现了两,所以输出4,6 我们想到异或运算的一性质:任何一个数字异或它自己都等
  • 统计20个数字中,一共有多少个不同的数字? 对比2中,不重复的数字有几,分别是什么?(不考虑本中的重复数字) 对比2中,重复的数字有几,分别是什么?(不考虑本中的重复数字) import random ...
  • Java字母加数字组合比较大小

    千次阅读 2017-10-25 11:28:29
    比较顺序就是先比较第一字符,如果比较出大小就停止,给出结果,否则比较第二,依次进行 所以可以把需要比较的参数作为String类型,直接传入数据库进行比较,根据上面的规则可以进行排序。
  • //若有1、2、3个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? import java.util.*; public class Liu { public static void main(String[]args) { int num = 0; for (int a = 1;a&...
  • 在第一份工作结束的时候,还是java小白,找工作的时候去面试,碰到一算法题:从十个数字中选取八个数字排列,重复算一,一共有多少种可能?当时想了半天也没想出来,虽然是数学上的排列组合算法,但是还是想...
  • [NOIP2010 普及] 数字统计

    万次阅读 2021-02-07 19:52:35
    比如给定范围[2, 22],数字 2 在数 2中出现了 1 ,在数 12 中出现 1 ,在数 20 中出现 1,在数 21 中出现 1 ,在数 22 中出现 2,所以数字 2 在该范围内一共出现了 6次。 输入格式 2正整数 L 和 R,之间...
  • package com.mingrisoft; import java.util.Arrays; public class Number { /** ...//123456的组合有哪些(5数组合不能重复) public static void main(String[] args) {  Sy
  • 问题描述: 将1-9的9个数字不重复的填入[ ][ ][ ] + [ ][ ][ ] = [ ]...将9不重复数字填入到9位置并且满足等式成立条件,可以看做求9数组的全排列,只要全排列满足 前3个数字 + 中间3个数字 = 最后3个数字即可...
  • 902. 最大为 N 的数字组合

    千次阅读 2019-06-25 08:00:34
    现在,我们用这些数字进行组合写数字,想用多少次就用多少次。例如D = {'1','3','5'},我们可以写出像'13', '551', '1351315'这样的数字。 返回可以用 D 中的数字写出的小于或等于 N 的正整数的数目。 ...
  • 生成6数字组合的随机数

    千次阅读 2015-06-12 10:24:10
    方法1  public int nextInt... 方法6  Random random = new Random();  String result="";  for(int i=0;i<6;i++){  result+=random.nextInt(10);  }  System.out.print(result);
  • 数字组合(背包计数)

    万次阅读 2017-08-24 18:08:59
    2046: 数字组合 时间限制: 0 Sec 内存限制: 128 MB 提交: 2 解决: 1 ...第一行是两个数字,表示N和M。 第二行起是N数。 输出 就一个数字,表示和为M的组合的个数。 样例输入 4 4
  • 本系列文章地址:http://blog.csdn.net/MoreWindows/article/category/859207首先来看题目要求:在一数组中除两个数字只... 考虑下这题目的简化版——数组中除一个数字只出现1外,其它数字都成对出现,要求尽快
  • 找出数组中两只出现一数字

    万次阅读 2015-03-19 22:29:20
    题目:一整型数组里除了两个数字之外,其他的数字都出现了两。请写程序找出这两只出现一数字。要求时间复杂度是O(n),空间复杂度是O(1)。还是理解不够深刻。 这题的主要思路还是之前的数组中只出现一的...
  • 数字转换为数 / 字符串转数字

    千次阅读 2019-06-04 19:38:23
    数字转为数组: function digitize(n) { //接受一number类参数,拆分成一数组并返回 var str = n + ""; //加上空字符中,把接收的参数转换为字符串 var arr = []; //声明结果空数组,稍后返回 str.split(...
  • 问题描述: 一整型数组 nums 里除两个数字之外,其他数字都出现了两。请写程序找出这两只出现一数字。???在人群中找出那两条狗?
  • 题目描述:输入一整数数,实现一函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路: 1...
  • 8.【编码】福彩双色球中红球由6个1-33之间的数字组合,且不重复, 编写代码,使用Set集合来存储随机生成的1-33的数字,然后输出生成的数字 * */ public class ColorBall { public static voi...
  • 题目:一整型数组里除了两个数字之外,其他的数字都出现了两。 请写程序找出这两只出现一数字。要求时间复杂度是O(n),空间复杂度是O(1)。 */ void findTwoNumsWithOthersHas2Times(int s[],int len) { ...
  • 你能猜出这个数字多少吗?请填写该数字,不要填写任何多余的内容。又是枚举,没得多说,暴力破解就是用来刷这种水题的,值得学习的就是判断0~9的10个数字用且只用了一这种技巧,想必听过我的讲座的都会写吧...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 870,458
精华内容 348,183
关键字:

6个数字可以组多少次