某某面试题
2015-11-09 18:10
337 查看
1.设计算法
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
2.随意输入的字母,遍历出最先重复的字母
3.任意数字的因数从小到大排列
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
Console.WriteLine("请输入一组升序的数组值。"); var all = Console.ReadLine().Split(','); Console.WriteLine("请输入数字。"); var str = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(str)) { for (int i = 0; i < all.Length; i++) { for (int j = all.Length - 1; j > 0; j--) { if (i != j) { if (int.Parse(all[i]) + int.Parse(all[j]) == int.Parse(str)) { Console.WriteLine("数组为" + all[i] + "," + all[j]); break; } } } } }
2.随意输入的字母,遍历出最先重复的字母
string result = string.Empty; var len = str.Length; char[] arr = str.ToCharArray(); int[] a = new int[len]; int index = 0; for (int i = 0; i < len; i++) { index = str.IndexOf(arr[i], i + 1); if (index == -1) a[i] = 999; else a[i] = index; } Array.Sort(a); if (index == 999) { result = "没有出现重复的"; } else result = arr[a[0]].ToString();
3.任意数字的因数从小到大排列
if (n == 1) { result = "没有因数"; return result; } for (int i = 2; i < n + 1; i++) { if (n == 1) break; for (int j = 0; ; j++) { if (n % i == 0) { result += i.ToString() + ","; n = n / i; } else { break; } } }
相关文章推荐
- 职业规划之工作几年是个坎
- 黑马程序员——枚举和动态代理
- java经典面试题
- 黑马程序员——IO——File、常用流对象演示
- 黑马程序员_MRC
- 个人五年职业规划
- Java基础面试题笔记(2)
- 1000赞的程序员高薪职业建议
- 成为专业程序员的6个技巧---心灵鸡汤
- 100+经典Java面试题及答案解析
- 兄弟连专注IT教育 九周年再创辉煌
- 程序员的烦恼
- 2013年4月腾讯后台技术类实习生应聘经历[转载]
- 黑马程序员-----反射
- 有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?
- 经典面试题-螺旋打印OC版
- 有了这个列表,程序员不愁没练手的小项目了
- P147、面试题26:复杂链表的复制
- P143、面试题25:二叉树中和为某一值的路径
- 国造为什么总是质量差的代名词----献给良心做事的程序员们,以及其他行业默默认真地工作者们