【算法】程序猿不写代码是不对的60
2017-05-23 17:43
246 查看
package com.kingdz.algorithm.time201705; /** * <pre> * 调整队形 * 有N个人排成一排,每个人的身高为Tn,为了保证中间最高两边依次变矮,一共需要有K个人出列 * 使得队列剩余N-K个人,求出列的K人最小是多少 * </pre> * * @author kingdz * */ public class Algo23 { public static void main(String[] args) { int[] a = { 0, 186, 186, 150, 200, 160, 130, 197, 220, 0 }; int n = 8; int[] flag1 = new int[n + 2]; int[] flag2 = new int[n + 2]; a[0] = 0; for (int i = 1; i <= n; i++) { for (int j = i - 1; j >= 0; j--) { if (a[j] < a[i] && flag1[j] + 1 > flag1[i]) { flag1[i] = flag1[j] + 1; } } } a[n + 1] = 0; for (int i = n; i >= 1; i--) { for (int j = i + 1; j <= n + 1; j++) { if (a[j] < a[i] && flag2[j] + 1 > flag2[i]) { flag2[i] = flag2[j] + 1; } } } int max = 0; for (int i = 1; i <= n; i++) { if (flag1[i] + flag2[i] > max) { max = flag1[i] + flag2[i]; System.out.println(flag1[i] + "\t" + flag2[i]); } } System.out.println(n - max + 1); } }
相关文章推荐
- 【算法】程序猿不写代码是不对的3
- 【算法】程序猿不写代码是不对的6
- 【算法】程序猿不写代码是不对的26
- 【算法】程序猿不写代码是不对的32
- 【算法】程序猿不写代码是不对的31
- 【算法】程序猿不写代码是不对的1
- 【算法】程序猿不写代码是不对的36
- 【算法】程序猿不写代码是不对的22
- 【算法】程序猿不写代码是不对的21
- 【算法】程序猿不写代码是不对的34
- 【算法】程序猿不写代码是不对的7
- 【算法】程序猿不写代码是不对的13
- 【算法】程序猿不写代码是不对的12
- 【算法】程序猿不写代码是不对的24
- 【算法】程序猿不写代码是不对的18
- 【算法】程序猿不写代码是不对的5
- 【算法】程序猿不写代码是不对的11
- 【算法】程序猿不写代码是不对的15
- 【算法】程序猿不写代码是不对的29
- 【算法】程序猿不写代码是不对的35