V for Vendetta

V for Vendetta V字仇杀队 复仇者V 安迪·沃卓斯基 and Larry Wachowski

思想,是最强大的武器。因为,世界上的独裁政府,有一个共同特点就是推行洗脑和愚民政策。

经典台词:

We are told to remember the idea,not the man.
Because man can fail.He can be cought,he can be killed and forgotten.
But you cannot kiss an idea.
You cannot touch it,or hold it.
Ideas do not bleed,they do not feel pain.They do not love.
I have witnessed first hand the power of ideas. I`ve seen people kill in the name of them.And die defending them.
But 400 years later,an idea can still change the world.

2015/10/6 19:03:27

SOLID_思想_观点_人生

SOLID原则

  • 开闭原则 the open closed principle(OCP)
  • 里氏代换原则 the liskov substitution principle(LSP)
  • 依赖倒转原则 the dependency inversion principle(DIP)
  • 接口隔离原则 the interface segregation principle(ISP)
  • 单一职责原则 the single responsibility principle(SRP)
  • 迪米特法则(最少知道)
  • 合成复用原则

Zigzag Print

思路:

1 首先是按行输出,每行输出相同位置的下一间隔为row*2-2,行游标0<i<row;
2 行内输出,考虑中间斜向部分,首行和末行,直接打印空格,中间部分,需要打印斜向字符及前后空格
斜向部分字符在字符串中的坐标为span+j-2*i,其中j为行内游标(列游标)
斜向字符前面空格数为row-2-i,斜向字符后空格数为i-1
3 为什么是span+j-2*i?

初始化时(每一行的首个斜向部分),j=i,字符位置为span-i+(j-i),其中j-i==0;
也必须这样初始化,因为要打印出首列的字符,通过j=i初始化,完成j的自增1,还能控制本行下一字符的输出;
第二个斜向部分,j+=span,字符位置为 span*2-i==span-i+(j+=span)-i==span+j-2*i;
….
重点是:span-i是位置,配合行内游标j,使得位置可以行内自增,但是要减去初始化的值,即j=i;
所以,有了span-i+j-i,即span+j-2*i

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static void printZigZag(String s,int row) {
if (s.length()==0||row<1) {
return;
}
if (row==1) {
System.out.println(s);;
}
int span=row*2-2;
int zig=row-2;
//控制行打印
for (int i = 0; i < row; i++) {
//控制每行,垂直列上的输出,间隔为span
for (int j = i; j < s.length(); j+=span) {
System.out.print(s.charAt(j));
//控制中间斜向部分的输出,其中斜向输出字符在字符串中的位置为span+j-2*i
if (i!=0&&i!=row-1&&span+j-2*i<s.length()) {
for (int j2 = 0; j2 < zig-i; j2++) {
System.out.print(" ");
}
System.out.print(s.charAt(span+j-2*i));
for (int j2 = 0; j2 < i-1; j2++) {
System.out.print(" ");
}
}
else {
for (int j2 = 0; j2 < zig; j2++) {
System.out.print(" ");
}
}
}
System.out.println();
}
}

EOF by toto

品味与人

有些人,你以为可以见面的;有些事,你以为可以一直继续的。然后也许就在你转身的那个刹那,有些人你就再也见不到了。当太阳落下又升起来的时候,一切都变了。一不小心,就再也回不去了。

人和人的差异,源自每个人背后那些堆自己成长的故事,而其中好多故事的影响可能是一辈子

  1. 不同环境成长的人,价值差距好大。某东西A网站卖1000,B网站卖980,HK卖900,还有不知道啥进货渠道的N手贩子卖890,买哪个?我估计这要是开个讨论会,能炸开锅。
    那我只能说,我就买1000那个。why?钱多?显然不是,因为我只买我认为确定可行的,减少不可预见的未来蹦出来的各种烦心事。
  2. 细节,对人的区分度好大。举个栗子,就拿上厕所来说,厕后冲水不冲水,就跟代码规范不规范一样,忽略细节,难,以细节服人。
  3. 情商,说到这个东西,我感觉我的也不是很高,但是现实是,我遇到了好多人,居然比我的还低..真是替你们捉急.提高情商最简单的就是,少反驳,多赞美。
  4. 偏执,现在的人确实思想都好丰富啊,这是好事,带来的问题是,谁也不服谁啊,10个人9套思想,作为团队只能输出一个,如何是好?学会改变,找出那个最好的,支持他。
  5. 勤奋,勤奋作为一个主导因素,在人与人拉开差距的时光里,起到了决定性作用,另外一个,是运气。那个也往往眷顾阳光努力的人,正所谓阳光普照大地。

其实,每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨。

品味

只有两种人,可以引领品味,一极其有钱,二极其有才。
作为两者皆null的我,只有不断充实自己,找出符合大众口味又略带个人特色的路子,才是正解。

现在,我不知道我现在做的哪些是对的,哪些是错的,而当我终于老死的时候我才知道这些。所以我现在所能做的就是尽力做好每一件事,然后等待着老死。

leetcode 4_5_6_8

Median of Two Sorted Arrays

There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
大意:求两个有序数组的中位数(中位数:奇数个即为中间数,偶数个为中间2个数均值)

leetcode 1_2_3_7

Two Sum

Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target,
where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.

Git

WHAT IS GIT

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
*From 百度百科

HashMap

Java最基本的数据结构有数组和链表。
数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。
链表恰好相反,可动态增加或减少空间以适应新增和删除元素,但查找时只能顺着一个个节点查找,所以增加删除快,查找慢。
那么问题来了,有没有一种综合数组和链表优点的数据结构呢?