题目描述

给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?
给定整数数组A和数组的大小n,请返回题目所求的答案。

阅读全文 »

先放代码

1
2
3
4
5
6
7
8
public static int countNum(int n) {
int count = 0;
while (n != 0) {
n &= (n - 1);
count++;
}
return count;
}
阅读全文 »

题目描述

有一个长度为n的数组A,求满足0 <= a <= b < n的A[b]-A[a]的最大值

阅读全文 »

线程池简介

我们在实现并发功能时会频繁的创建和销毁线程,这样会加大系统的开销,而线程池会缓存一定数量的线程,可以避免这样的情况,并且线程池可以对现场进行简单的管理,简化了并发编程。

阅读全文 »

概述

之前在学习android事件方法机制的时候,看过不少文章,但是大部分都讲的不是很清楚,我自己理解的也是云里雾里,也尝试过阅读源码,看得我更是不知所措。最近阅读了《Android开发艺术探索》一书中相关的章节,茅塞顿开,写下本文作为阅读笔记,以便以后查阅。

阅读全文 »

简介

Service作为Android的四大组件之一,它的重要性不言而喻,之前虽说看过一些介绍但是一直没有用过,最近需要用到的时候发现无从下手,便阅读了官方的有关Service的Guide,这里总结一下。

阅读全文 »

1.问题描述

有n个物品,第i个物品的体积和价值分别为w[i]、v[i](1<= i <=n),现有一个容量为c的背包,将这些物品选择装入该背包,如何选择使得包里的物品价值总和最大。

阅读全文 »

快速排序的基本思路是选取一个基准数,然后将小于基准数的移到基准数左边,反之在右边,称为一趟快速排序。然后以基准数分为左右两组,分别快速排序,如此递归,完成最终排序。

一般基准数选取第一个数据,接下来重点在于一趟排序中如何移动数据。如数据data[] = {4 3 6 2 1},data[0] = 4为基准,将4搬出,则data[0]一个空位,设置标志位i = 0, j = 4。先递减j,因为右边的是大于4的,所以找到小于4的移到左边的空位,然后递增i找到大于4的移到之前j移动后的空位 如此反复直到i = j结束。此时i = j肯定是一个空位 将4移动到这,第一趟结束,接下来递归就可以了。

阅读全文 »
0%