算法思路

原创 2015年07月07日 16:14:56

1、动态规划:一堆积木,每个积木有长宽高<c,k,g>;现在要从中找出满足以下规则的最多木块数。规则:下面的木块长宽高都要大于或等于上面的长宽高?

思路:先把所有木块按长排序,长相同按宽排序,以此类推;定义数组所以值初始化位1,再第i个木块从第一块木筷比较,找出比第i个木块小的所有木块的键值最大的一个再加1,即为其键值;

2、在一个元素个数为N的数组里,找到升序排在N/5位置的元素(或者第k大小的元素)的最优算法时间复杂度是O(N)  用桶排序或基数排序可以解决


3、A、B和C。如果C包含且仅包含来自A和B的所有字符,而且在C中属于A的字符之间保持原来在A中的顺序,属于B的字符之间保持原来在B中的顺序,那么称C是A和B的混编。实现一个函数,判断C是否是A和B的混编。

给定三个字符串A,BC,及他们的长度。请返回一个bool值,代表C是否是A和B的混编。保证三个串的长度均小于等于100。

测试样例:
"ABC",3,"12C",3,"A12BCC",6
返回:true

classMixture {
public:
    bool chkMixture(string A, intn, string B, intm, string C, intv) {
        // write code here
        if(n+m!=v)returnfalse;
  
        if(v == 0)returntrue;
          
        if(A[0] == C[0] && B[0] != C[0]){
                returnchkMixture(&A[1],n-1,B,m,&C[1],v-1);
            }
        if(A[0] != C[0] && B[0] == C[0]){
                returnchkMixture(A,n,&B[1],m-1,&C[1],v-1);
            }
        if(A[0] == C[0] && B[0] == C[0]){
                returnchkMixture(&A[1],n-1,B,m,&C[1],v-1)||chkMixture(A,n,&B[1],m-1,&C[1],v-1);
            }
            returnfalse;
          
    }
};
返回值,string: &A[1]从第二个字符开始



面试时算法题的解答思路

面试中纯粹考算法的问题一般是让很多程序员朋友痛恨的,这里分享下我对于解答算法题的一些思路和技巧。 一般关于算法的文章,都是从经典算法讲起,一种一种算法介绍,见得算法多了,自然就有了感悟,但如此学习花...
  • GarfieldEr007
  • GarfieldEr007
  • 2015年12月24日 12:41
  • 765

思考与改进(KNN算法)

思考与改进 论文题目:k-NearestNeighbors on Road Networks: A Journey in Experimentation and In-MemoryImplement...
  • hit_buxiaoyu
  • hit_buxiaoyu
  • 2016年12月21日 13:09
  • 1151

【常用算法思路分析系列】与二分搜索相关高频题

本文是【常用算法思路分析系列】的第五篇,总结二分搜索相关的高频题目和解题思路。本文分析如下几个问题:1、求数组局部最小值问题;2、元素最左出现的位置;3、循环有序数组求最小值;4、最左原位;5、完全二...
  • shakespeare001
  • shakespeare001
  • 2016年06月12日 16:36
  • 2817

AES算法实现分析

AES算法实现分析(代码阅读)
  • archimekai
  • archimekai
  • 2016年11月09日 09:06
  • 3913

车牌识别及验证码识别的一般思路

本文源自我之前花了2天时间做的一个简单的车牌识别系统。那个项目,时间太紧,样本也有限,达不到对方要求的95%识别率(主要对于车牌来说,D,0,O,I,1等等太相似了。然后,汉字的识别难度也不小),因此...
  • neubuffer
  • neubuffer
  • 2013年11月23日 14:38
  • 1301

【常用算法思路分析系列】链表相关高频题集

本文是【常用算法思路分析系列】的第四篇,总结链表相关的高频题目和解题思路。本文分析如下几个问题:1、环形链表的差值问题;2、只能访问单个结点的删除问题;3、链表的分化;4、打印两个链表的公共部分;5、...
  • shakespeare001
  • shakespeare001
  • 2016年05月24日 10:45
  • 5652

快速排序算法思路笔记

每次去回忆快排算法时,都会忘记具体的步骤,总是思考一阵子再看看网上的资料才回想起来,现在记载一下思路,免得以后忘了。 重点就在这个partition上面,如何有效地在原始空间上进行part...
  • chengdezhi2011
  • chengdezhi2011
  • 2017年02月03日 22:16
  • 150

Project tango是如何仅凭自身摄像头实现位置追踪的?

 点击链接加入群【虚拟技术tango.unity技术】:http://jq.qq.com/?_wv=1027&k=2AeeI59 每个手机里都有IMU。 IMU实现三自由度(相当于人的前...
  • sinat_35801282
  • sinat_35801282
  • 2016年08月05日 18:00
  • 1387

克鲁斯卡尔算法(最短路算法详解)

1、基本思想:设无向连通网为G=(V, E),令G的最小生成树为T=(U, TE),其初态为U=V,TE={ },然后,按照边的权值由小到大的顺序,考察G的边集E中的各条边。若被考察的边的两个顶点属于...
  • qq_35806592
  • qq_35806592
  • 2017年02月23日 20:04
  • 150

求取两个整数的最大公约数算法

#include "stdafx.h" #include #include #include using namespace std; int algorithm1(int max, int min)...
  • dg19971024
  • dg19971024
  • 2017年03月18日 23:22
  • 66
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法思路
举报原因:
原因补充:

(最多只允许输入30个字)