算法
文章平均质量分 76
qq1041256623
这个作者很懒,什么都没留下…
展开
-
编程面试的10大算法概念汇总
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题10. 排列组合1. 字符串如果IDE没转载 2013-11-28 12:01:24 · 711 阅读 · 0 评论 -
从数列1,2,3,......,n中随意取出几个数,使其和等于m
问题描述: 输入两个整数n和m,从数列1,2,3,.......n中随意去几个数,使其和等于m,要求将其中所有可能的组合列出来。解决思路: 这个问题其实是背包问题的变形,给出两种解决方法。 解法一: 用递归,效率可能低了点。假设问题的解为F(n,m),可分为两个子问题F(n-1,m-n)和F(n-1,m)。对于这两个问题递归求解,求解的过程中,如果找转载 2014-11-03 10:29:25 · 1791 阅读 · 0 评论 -
最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的转载 2014-11-02 21:28:18 · 430 阅读 · 0 评论 -
统计一个无序数组中出现次数最多的元素
统计一个无序数组中出现次数最多的元素。可以有的一种解法是先对数组排序,所有相同的元素都会集中到一起,再进行一次遍历就能解决问题。问题是时间的复杂度比较大,不满足一些场合下的要求。n个元素的数组,有k个不同的元素。如果频率最高的元素的频率大于50%,下面一个简单的实现可以解决问题。只需要一次遍历。[cpp] view plaincopy#include转载 2014-11-02 21:25:59 · 3230 阅读 · 3 评论 -
关于数组的几道面试题
数组求和求数组中的最大值和最小值求数组中的最大值和次大值求数组中出现次数超过一半的元素求数组中元素的最短距离求两个有序数组的共同元素求三个数组的共同元素找出数组中唯一重复的元素找出出现奇数次的元素求数组中满足给定和的数对最大子段和最大子段积数组循环移位字符串逆转组合问题合并两个数组重排问题找出绝对值最小的元素数组求和转载 2014-11-02 21:10:53 · 508 阅读 · 0 评论 -
C++实现常见排序算法
本程序参考了网上各位大牛和数据结构中的程序,VS2005运行通过,如有问题,请各位大牛指正。实现的排序有:直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序等等#include using namespace std; const int len = 100; class CSort { public: CS转载 2014-10-09 10:46:51 · 431 阅读 · 0 评论 -
二路归并排序,C++代码实现
#include using namespace std; typedef struct { int r[100+1]; int length; }SqList; //二路归并函数 void Merge(SqList &L,int low,int m,int high) {//将两个有序区归并为一个有序区 in转载 2014-10-08 18:52:52 · 898 阅读 · 0 评论 -
实现两个N*N矩阵的乘法,矩阵由一维数组表示
#includeusing namespace std;#define size 2int * multi(int* a, int* b, int N){ int i,j,k,temp; int * c = (int *)malloc(N*N); for(i=0;i { for(j=0;j {转载 2014-03-05 14:54:31 · 597 阅读 · 0 评论 -
求乘积最大组
长度为n的整形数组,找出其中任意n-1个乘积最大的那一组,只能用乘法,不可以用除法。要求对算法时间复杂度和空间复杂度进行分析。#include #include #include #include int ret1Index(const int myArray[], const int n)//返回1个不包含在n-1个因子乘积最大组合中的因子下标{转载 2014-03-05 15:00:05 · 579 阅读 · 0 评论 -
c语言--求两圆交点
已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解) 在一个二维平面上给定两个圆的圆心横纵坐标、半径共6个参数, 求交点. 这个问题无非是解二元二次方程组.普通二元二次方程联立消元求解的困难在于, 中间过程里的系数会变得非常复杂, 从而导致容易出错---因为公式毕竟还是要人来推导,人的出错率比计算机要高得多得多---改用圆的参数方程求解, 可以在显著地减轻这个负担.转载 2015-01-14 18:00:38 · 1418 阅读 · 0 评论