算法
yfainaer
这个作者很懒,什么都没留下…
展开
-
01背包问题(动态规划入门)
01背包问题给定N种物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为M。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大??在选择物品的时候,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入多次,也不能只装入物品的一部分。因此,该问题被称为0-1背包问题。思路:用V(i,j)表示将前i种物品放入容量为j的背包中能得到的原创 2017-03-29 17:58:36 · 1468 阅读 · 0 评论 -
求二叉树最大叶子节点距离(不含全局变量)
题目: 输入一颗二叉树先序遍历的字符串,输出该二叉树的最大叶子节点距离分析知,最大的距离要么是经过根节点的一条路径,要么是在左子树中的一条路径,或者是在右子树中的一条路径。那么可以知道最大叶子节点的距离是左右子树的高度和、左子树最大叶节点距离、右子树最大叶节点距离中的最大值。可以摒弃前面的用全局变量记录最大叶节点距离的方法(不可重入),代码如下。原创 2017-04-06 18:09:24 · 911 阅读 · 0 评论 -
单链表的归并排序
题目:单链表的归并排序思路:首先找到链表的中间节点,将原始链表一分为二,递归进行该操作,直到被划分的两个链表包含的节点少于等于1个,即该次划分后两个链表已经有序。然后依次合并两个有序的链表,直到所有划分都合并完,即排序完毕。主要编写将两个有序链表合并为一个有序链表的函数。#include<iostream>using namespace std;//链表...原创 2017-11-30 22:37:41 · 515 阅读 · 0 评论 -
求数组中第K大的数
输入为2行,第一行是无序的包含不定个数的整数,第二行是一个整数K,代表要求的第K大的数输出一个整数,代表数组中第K大的数#include#include#include#includeusing namespace std;//依据快速排序,好理解int kthLarge_own(int r[],int start,int end,int k){ int i =原创 2017-08-27 11:05:28 · 462 阅读 · 0 评论