两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];...
转自:http://blog.csdn.net/shandianling/article/details/8785269
问题描述:两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
要求:
1.不准用除法运算
2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)
3.满足时间复杂度O(n),空间复杂度O(1)
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void pr_arr(int s[],int len) 5 { 6 for(int i = 0 ; i <= len - 1 ; i++) 7 { 8 printf("%d \n",s[i]); 9 } 10 } 11 int main() 12 { 13 int a[]={2,3,7,23,6,5,1,23,89,23}; 14 int *b=(int*)malloc(sizeof(a)); 15 b[0]=1; 16 int len=sizeof(a)/sizeof(int); 17 int j,i; 18 for( i=1;i<len;i++) 19 { 20 b[i]=b[i-1]*a[i-1]; 21 } 22 for(j=len-2;j>=1;j--) 23 { 24 b[0]*=a[j+1]; 25 b[j]*=b[0]; 26 } 27 b[0]*=a[1]; 28 pr_arr(b,len); 29 return 0; 30 } 31
- #include <stdio.h>
- #include <stdlib.h>
- void pr_arr(int *s,char len)
- {
- while(len--)
- {
- printf("%d \n",*s++);
- }
- }
- int main()
- {
- int a[]={2,3,7,23,6,5,1,23,89,23};
- int *b=(int*)malloc(sizeof(a));
- b[0]=1;
- int len=sizeof(a)/sizeof(*a);
- int j,i;
- for( i=1;i<len;i++)
- {
- b[i]=b[i-1]*a[i-1];
- }
- for(j=len-2;j>=1;j--)
- {
- b[0]*=a[j+1];
- b[j]*=b[0];
- }
- b[0]*=a[1];
- pr_arr(b,len);
- return 0;
- }
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];...相关推荐
- 请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同...
最笨的办法当然是二层嵌套循环,但觉得应该有更好的方法,但是着实想不出来,想听听大家的意见,大家帮帮小弟 i.e string[] A={"X","Y",&quo ...
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差(状态压缩DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 2 * n 的整数数组. 你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之 差的绝对值 ...
- 力扣题目——350. 两个数组的交集 II
注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定两个数组,编写一个函数来计算它们的交集. 输入示例 输入:nums1 = [1,2,2,1 ...
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.算法详解 3.时间复杂度 4.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给你一个 ...
- LeetCode简单题之两个数组的交集 II
题目 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值).可以不考 ...
- Java合并两个int数组合并_Java中如何把两个数组合并为一个
在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁,却还是值得思考的.这里介绍四种方法,请参考选用. 一.apache-commons 这是 ...
- 两个数组的交集 II
两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...
- 349.两个数组的交集
做法基本两种 一是用java的set来做 二是用排序+二分/双指针来做 实现2 排好序了,可以比较下两个数组的最大值,最小值,看看是否有解,在大量数据的时候可以剪枝. int max1,max2,mi ...
- 数组-两个数组的交集(两个集合)
题意: 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5] ...
最新文章
- 一文看懂机器视觉芯片
- NUMBER_GET_NEXT 获取编号年度问题
- pod 的亲和性,反亲和性 实验
- Junit单元测试学习笔记一
- 读《redis设计与实现》笔记--redis数据结构
- 前亚马逊中国总裁王汉华出任好耶CEO
- 字符串匹配——C++使用Regex
- 如何更方便地将谷歌翻译导入到Goldendict
- 3.Java垃圾回收机制面试题
- 微信第三方授权获取用户信息
- 饭店计算机信息管理全章ppt,酒店信息质量管理.ppt
- 物联网云平台应用于远程污水在线检测
- H.264与x264的区别
- 10分钟教你用Python实现微信翻译机器人
- 计算机硬盘中了病毒处理方式,电脑硬盘被病毒加密如何解决 电脑硬盘被病毒加密的解决方法...
- blender中旋转问题(A绕B的中心旋转)
- 【计算机网络】第四部分 网络层(20) IP协议
- MWC 2017小结:各家新机缺乏创新,5G落地尚需时日
- 错误信息was not declared in this scope
- 二维码读取之ecc200_contrast_tolerance.hdev