- 浏览: 72586 次
- 性别:
- 来自: 长沙
最新评论
-
nhy338:
mark,留着以后看
使用MethodInterceptor实现AOP -
爪哇夜未眠:
这个是spring里面的方法拦截
使用MethodInterceptor实现AOP -
sunnylocus:
做下标记,明天有空仔细研究下方法拦截,感觉这是好东西!
使用MethodInterceptor实现AOP -
nwwhbp:
都是些基础的东西,学习了,谢谢LZ的分享。
Kingsoft西山居笔试试题
文章列表
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
Find the minimum element.
You may assume no duplicate exists in the array.
代码:
class Solution {
public:
int findMin(vector<int> &num) {
int i ...
这题如果没有负数和0,答案就很简单了,所有数的乘积。有负数和0就要复杂一些。
先考虑只有正数和负数而没有 0 的情况:
负数是偶数个。答案也很简单,所有数的乘积。
负数是奇数个。那就要枚举这个负数位置,将序列分成两部分,取乘积大的那部分。
然后再考虑数据中有 0 的情况,这时我们可以将整个序列以 0 进行分割成多个子序列,每个子序列的处理和情况 1 一样。
class Solution {
public:
int noZero(int A[], int start, int end) { // 没有 0 的子序列
in ...
1. 先写出业务对象接口及实现业务对象。
public interface Interface {
public void hello();
}
这里写俩个实现。
public class InterfaceImpl implements Interface {
/**
* @see com.alipay.aop.BusinessInterface#hello()
*/
@Override
public void hello() {
System.out.println(&quo ...
<%@ page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>下拉列表联动</title>
</head>
<body bgcolor="#ffffff">
<table>
<tr>
<td><select name="s1" onChange="haha()">
& ...
日志文件会不断的增加,这个程序能上传这不断增加的日志文件到服务器,以便服务器分析。
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/sendfile.h>
#define SA struct sockaddr
/**
* 如果出现错误,程序返回 ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
int const N= 302;
int mat[N][N], n, q, pos[N];
int dMin[9][9][N][N];
void initRMQ(){
int i, j, u, v, a, b, c, d;
for( pos[0]= -1, ...
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int const N= 50010;
int n, L;
typedef long long LL;
LL dp[N], sum[N], A[N], B[N];
int que[N], data[N];
/*
dp[i]= min{ dp[j]+ ( s[i]- s[j]+ i- j- 1- L )^2 }
令 A[ ...
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
#define min(a,b) ( (a)< (b)? (a): (b) )
int n, m;
int const N= 400100;
typedef long long LL;
/*
dp[i]= min{ dp[j]+ sum[i]- sum[j]+ ( i- j )* data[j+ 1] }
要求分段的序列长度不小于 m,即 i- j+ 1>= m
...
一.填空题:
1.
Char szTest[]=”12345\t\n\0abcd\0”;
则 strlen(szTest)值为____, sizeof(szTest)值为___
2.
Int anTest[5][10]; int n1=
&anTest[4]- &anTest[10], n2= &anTest[3][1]- &anTest[1][3]; 则 n1 的值为_____.
3.
Char szNum[]=”123456789”; int
n= *(short*)(szNum+ 4)- *(sho ...
原题意思是求一个不超过 k 的连续序列的和的最大值。
枚举连续序列的起点 i, 然后在 [i, i+k] 区间找一个最大值,更新答案。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max(a,b) ( (a)> (b)? (a): (b) )
#define min(a,b) ( (a)< (b)? (a): (b) )
int const N= 200010;
int dat[N], sum[N];
int n, nn, k ...
先求出最短路径,然后用最短路径上的边构建一个新图,在新图上求最小割。
#include <iostream>
#include <queue>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;
int const N= 1010, M= 200010;
int n, m;
int const inf= 0x7fffffff;
int res;
st ...
给你 n 个串,和 m 个病毒串。要把这 n 个串连起来来,可以重叠,但不能包含 m 个病毒串中的任意一个。求把 n 个串连起来的最小长度。
#include <iostream>
#include <bitset>
#include <cstdio>
#include <cstdlib>
#include <queue>
using namespace std;
int const N= 1010, M= 60010;
int n, m, cnt, bit[15];
char str[N];
stru ...
给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、
在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。
求出最大流后,残余网络的流量不变,费用改为 0. 对原图的每一条边,对应增加一条流量为 k,费用为 w 的边,再增加一个源,源到 1 的流量为 k,费用为 0。求最小费用最大流,即为第二问答案。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define min ...
判断边是否在某个最小割集中 以及 判断边是否为最小割的必需边。
在残余网络中求出强连通分量,对于不在同一强连通分量且满流的边,必然在某一最小割中。
题目链接
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define min(a,b) ( (a)< (b)? (a): (b) )
int const N= 4010, M= 60010;
struct Edge{
int adj, flow, idx;
Edge* next;
}tb[M< ...
题目意思为有一棵树,对每个结点有两个值 v[i] 和 w[i],让你在这树上找一棵子树,使得 sum{ v[i] }/ sum { w[i] } 最大。二分这个答案 r ,对每个结点,重新计算一个值 t[i]= v[i]- r* w[i]。问题变成判定是否存大一棵子树,使得 t[i] 权值和大于0。
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace ...