找出最大值和最小值 题目要求 输入n个数,n<=100,找到其中最小的数和最大的数 实现代码 using System; namespace _1.求最大最小 { class Program { public static int GetMax(int[] numbers) { int max = numbers[0]; for (int i = 0; i < numbers.Length; i++) { if (max < numbers[i]) { max = numbers[i];…
[Date]2013-09-19 [Author]wintys (wintys@gmail.com) http://wintys.cnblogs.com [Content]: 1.面试题 输入一个整型数组,找出最大值.最小值,最大值与第一个元素交换,最小值与最后一个元素交换,并输出. 2.程序 public class MaxMinTest {     public static void main(String[] args) {         int[] a={1,7,2,4,5,3,2,…
写出一个算法,对给定的n个数的序列,返回序列中的最大和最小的数. 设计出一个算法,仅仅须要运行1.5n次比較就能找到序列中最大和最小的数吗?是否能再少? 分析:要求比較次数为1.5n,使用一般的逐个遍历每一个元素然后推断其是否为最大最小值是须要2n次的比較的,所以这个方案是行不通的. 如今考虑採用,每次从数组中取出两个元素.推断其大小.然后再分别推断其是否是最大或最小值,这样一次处理两个元素.每一次比較3次,终于的比較次数就是n/2*3=1.5n. C语言代码例如以下: #include <st…
# 方法一 利用max min 函数. 注意这里max min 分别都是功能函数 def main_m(*args): i = max(args) j = min(args) print("最大值是%s" % i) print("最小值是%s" % j) list1 = [23,56,8,99]main_m(*list1) # 方法二 给max min 变量赋初值(这里max 和min 都是变量) 然后遍历容器将所需的最大和最小值分别赋给两个变量 def main_…
在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID ,) PRIMARY KEY, Name ), UpdateByApp1Date DATETIME, UpdateByApp2Date DAT…
返回本章节 返回作业目录 需求说明: 编写 Java 程序,用户输入 3 个操作数,分别求出最大值.最小值和平均值. 实现思路: 定义 Java 类,定义 3 个方法,用来求 3 个数字的最大值.最小值和平均值. 在 main 方法中使用 Scanner 完成对 3 个实例字段的赋值,再分别调用 3 个方法得到结果进行打印. 实现代码: import java.util.Scanner; public class MaxAvgDemo { //求最大值 public int getMax(int…
题目描述: 找出多个数组中的最大数右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组.提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素. 算法: function largestOfFour(arr) { // 请把你的代码写在这里 var newArr = []; for(var i = 0;i < arr.length;i++){ arr[i].sort(function(a,b){ return b-a; });…
题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function findLongestWord(str) { // 请把你的代码写在这里 var arr = []; str = str.split(" "); for(var i=0;i<str.length;i++){ arr.push(str[i].length); } arr.sort(fu…
题目描述: 先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引.举例:where([1,2,3,4], 1.5) 应该返回 1.因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1.同理,where([20,3,5], 19) 应该返回 2.因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2. 我自己做的有两种思路,第一种,先进行排序,然后比大小找出索引值,代码:…
第二课主要介绍第一课余下的BFPRT算法和第二课部分内容 1.BFPRT算法详解与应用 找到第K小或者第K大的数. 普通做法:先通过堆排序然后取,是n*logn的代价. // O(N*logK) public static int[] getMinKNumsByHeap(int[] arr, int k) { if (k < 1 || k > arr.length) { return arr; } int[] kHeap = new int[k];//存放第k小的数 for (int i =…
为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想. [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子数量的规律为数列:1,1,2,3,5,8,13.....其实就是斐波那契数列  使用递归就可以实现 /** * 兔子问题 * 2016/5/9 * 斐波那契数列求值 *题目:古典问题:有一对兔子,从出生后第3个月起每…
题目 题目:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k),堆是完全二叉树的一种,最大堆就是最上面的数是最大的该方法基于二叉树或者堆来实现,首先把数组前k个数字构建一个最大堆,然后从第k+1个数字开始遍历数组,如果遍历到的元素小于堆顶的数字,那么久将换两个数字,重新构造堆,继续遍历,最后剩下的堆就是最小的k个数,时间复杂度O(nlog k). 思路2 排序…
先说需求:找出一个对象List中,某个属性值最大的对象. 1.定义对象 private class A { public int ID { get; set; } public string Name { get; set; } }  2.为两种方法定义两个时间段全局变量. 1 private static TimeSpan compare = new TimeSpan(); private static TimeSpan order = new TimeSpan();  3.第一种方法:对列表…
1.1 数组去重的五种方法 数组去重:将数组中重复的元素去掉 JS数组没有删除具体元素的删除(只能删掉值,删不掉元素的索引),可以使用另外一个结构来进行存储 新数组 新对象 JS数组虽然本质可以删除第一个和最后一个元素,可以利用 这一特性,交换当前重复的元素到最后,然后进行删除(pop() 或者length--) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&…
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null 1.找链表倒数第k个结点,输入一个链表,输出该链表中倒数第k个结点.第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了 2.原理有点像上面的,定义两个指针,一个是快指针每次走两步,一个是慢指针每次走一步,当两个相遇的时候,假设环的长度为n个结点,慢指针走x步,快指针走2x步,2x=x+kn ;x=kn; k暂时假定为1圈 ,也就是慢指针slow…
有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(40), UpdateByApp1Date DATETIME, UpdateByApp2Date DATE…
生物信息:找出基因,生物学家使用字母A.C.T和G构成的字符串建模一个基因组.一个基因是基因组的子串,它从三元组ATG后开始在三元组TAG.TAA或TGA之前结束.此外,基因字符串的长度是3的倍数,而且基因不包含三元组ATG.TAG.TAA和TGA.编写程序提示用户输入一个基因组,然后显示基因组里的所有基因.如果在输入序列中没有找到基因,那么程序显示“no gene is found” s=input('Please input the Gene String:\r\n') endsplit=[…
最近被算法虐了一下,刷一下leetcode,找找存在感 如题: 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. Exam…
3Sum Closest 问题简介: 给定n个整数的数组nums和整数目标,在nums中找到三个整数,使得总和最接近目标,返回三个整数的总和,可以假设每个输入都只有一个解决方案 举例: 给定数组:nums=[-1, 2, 1, -4], 目标值:target = 1. 最接近目标值的答案是2 (-1 + 2 + 1 = 2). 解法一: 与上一道题类似,这次要求的是三数之和与目标值的差值最小值,可以定义一个变量来记录这个差值 思路就是想先定义一个最接近的值默认取前三个数的合,然后将数组排序后 小…
3Sum 问题简介: 给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0? 找到数组中所有唯一的三元组,它们的总和为零 注:解决方案集不得包含重复的三元组 例如{1,-1,0}和{1,0,-1} 举例: 给定数组 {-2,1,0,-1,-1,2,3} 输出{ {1,0,-1}, {-1,-1,2}, {-2,0,2}, {-2,-1,3} } 注:不能{0,0,0} 错误解法:Time Limit Exceeded 三层遍历导致时间复杂度极高 正确解法:…
题目描述: 确保字符串的每个单词首字母都大写,其余部分小写.像'the'和'of'这样的连接符同理. 算法: function titleCase(str) { // 转小写及分割成数组 var stringArr = str.toLowerCase().split(" "); for (var i = 0; i < stringArr.length; i++) { // 修改数组元素.第[0]位就是单词的首字母,转成大写,然后把后面的字符加上去 stringArr[i] = s…
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文.函数参数的值可以为"racecar","RaceCar"和"race CAR". 算法: function palindrome(str) { var str_obj = s…
题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function factorialize(num) { // 请把你的代码写在这里 var result = 1; for(var i=2;i <= num;i++){ result *= i; } return result; } factorialize(1);…
题目描述: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串.你的结果必须得是一个字符串. 算法: function reverseString(str) { // 请把你的代码写在这里 str = str.split("").reverse().join(""); return str; } reverseString("hello");…
题目描述: 删除数组中的所有假值.在JavaScript中,假值有false.null.0."".undefined 和 NaN. 使用filter方法,过滤掉生成的 Boolean 对象的值为 false的值.(如果第一个参数不是布尔值,则会将其转换为布尔值.如果省略该参数,或者其值为 0.-0.null.false.NaN.undefined.或者空字符串(""),则生成的 Boolean 对象的值为 false.) 算法: function bouncer(a…
先看一下题目描述: 如果字符串的长度比指定的参数num长,则把多余的部分用...来表示.切记,插入到字符串尾部的三个点号也会计入字符串的长度.但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度. 简单的if嵌套就可以解决,最开始我是这么做的: function truncate(str, num) { // 请把你的代码写在这里 var newStr = ""; if(str.length > num){ if(num <= 3){ newStr…
1.翻转字符串   例子(要求:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串) function reverseString(str) { str=str.split('').reverse().join(''); return str; } reverseString("hello");//split方法把字符串转换成数组//reverse方法翻转数组顺序//join 方法来把数组转换成字符串   2.计算一个整数的阶乘 例子(如果用字母n…
创建树,每个字符为一个节点,对于同一位置字符相同的共用一个节点.最后找出具有公共节点的短信.例如:MessageA "hello,world"MessageB "hello,china"ROOT|/ hello,| \w c| \o h| \r i| \l n| \ d a…
#define max(x,y,z) ((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z) #define min(x,y,z) ((x)<(y)?(x):(y))<(z)?((x)<(y)?(x):(y)):(z) #include <stdio.h> #define max(x,y,z) ((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z) #define min(x,…
(1) 不严谨的,最简单的 select MAX(字段名 + 0) from 表名; (2) 使用函数实现 select MAX(cast(字段名 as SIGNED INTEGER)) from 表名; 或者 select MAX(cast(字段名 as UNSIGNED INTEGER)) from 表名;…