我觉得本题考察关键在于两点: 1.哈希表的的概念和用法。 2.算法复杂度 我写了两种算法解决该问题: 1.穷举法,算法比较简单,用两个for循环遍历数组,时间复杂度为O(n²),空间复杂度为O(1)。 2.使用hashmap,遍历数组,将数组下标和值(计算过的)反向存入hashmap中,时间复杂度为O(n),空间复杂度为O(n)。 class Solution{ public int[] twoSum1(int[] nums, int target…
我觉得本题考察关键在于两点: 1.哈希表的的概念和用法。 2.算法复杂度 我写了两种算法解决该问题: 1.穷举法,算法比较简单,用两个for循环遍历数组,时间复杂度为O(n²),空间复杂度为O(1)。 2.使用hashmap,遍历数组,将数组下标和值(计算过的)反向存入hashmap中,时间复杂度为O(n),空间复杂度为O(n)。 class Solution{ public int[] twoSum1(int[] nums, int target…
时间过得真快,两年的时间转瞬即逝,两年前在纽约从12.04升级14.04的画面仿佛依稀昨天。而今却又要升级到16.04了,白驹过隙,如梦幻泡影。 两年,七百多天,不长不短,如露如电,于我,却总有可喜的变化,亦有可惜的遗憾..... 在掌上终端渐成主流的今天,PC和laptop貌似渐成鸡肋,操作系统变得不是那么重要,但是对于计算机研发人员来说,Linux系统仍是不可或缺的工具。而Ubuntu无疑仍是其中最优秀、流行的桌面系统。去年曾经听一个系统运维人员说,Ubuntu作为服务端操作…
SQL中casewhen结构具有两种格式——简单Case函数和Case搜索函数。语法分别如下: --简单Case函数 CASE <em>变量</em> WHEN <em>常量</em> THEN <em>表达式</em> WHEN <em>常量</em> THEN <em>表达式</em> ELSE <em>表达式</em> END --Case搜索函数 …
贴两个我Github上的quicksort代码。我曾经参加面试的时候,也会默默给面试公司和面试官做个评价。其中一个评价标准就是quicksort,很讽刺的是,一般会考察quicksort的互联网公司一般不会是规模较大的企业,多少有点水,而面试官不是态度比较散漫,就是水平较差。虽然我已倒背如流。 public static void quicksort(int[] array,int left,int right){ int index=partition(array,left,right); if(le…
使用关系数据库这么多年,感觉对日期和时间这种类型数据字段的处理和存储是最为繁琐的,不同类型的数据库不尽相同,风格各异。记忆力不好,每每忘记都要在网上上下求索,效率极低。鉴于此,特将一些心得、要点记录下来,以便日后参考。其实,无论是date、time抑或是datetime,需要弄清楚的地方无非只有两个方面:存储时间日期的数据类型,以及对其的各种操作和相关函数,比如提取年月日、转化为格式化字符串、日期时间的加减运算,等等等等。弄清楚了这些后,时间日期对于数据库“小牛”们真的仅仅就是“a piece of cake”…
Linux命令chmod是"change mode"的缩写,用来改变文件及目录的权限。chmod很基本,基本到乏善可陈,平时用的也很频繁,频繁到没有难度,感恩节假期在闲暇之余利用几十分钟想出一些钻牛角尖式的问题,纯属无聊之举。 在这之前先做一下简单归纳。Linux/Unix文件系统权限(permission/mode)主要在两方面保护限制文件访问:访问文件用户类别,以及文件访问方式类别,这里的文件也包括目录。用户类别主要有三种:文件拥有者(User),与User同一群组者(Group),以…
回文(Palindromic)就是正序、逆序读取完全一样的字符串。中文中像“画上荷花和尚画”、“书临汉帖翰林书”等这样的对联就是读音相同的回文。当然,回文字符串要求更严格,对应位置的字符要完全相同,如奇数位的“aba”、偶数位的“abba”。若如此,本段文字中符合定义的中文回文恐怕只有“中文中”这三个字。 假使给出一段字符串,从中找出最长的一段回文,这就要用到最长回文子串算法。注意任何字符串都会有最大回文子串,因为单个字符本身就可以看做是一个回文串。 解决这类问题的算法有很多,核心是要弄清各…
在字符串模式匹配算法基础上可以衍生出最长公共子串(Longest Common Substring)算法:假设给出两个字符串S和N,找出二者之间的最大公共子串。 按照正常思路可以很快想到:由大到小依次找出S的所有子串,每次将该子串作为Pattern使用Brute-Force算法搜索字符串N,如果找到匹配,便是最大公共子串。但是这种“算法”的时间复杂度达到O(n3),严格意义上也不能称之为一种算法,充其量只能算一种人类思维,大部分情况下不应考虑选用这种算法解决问题。 所谓“道不行,…
前几天,有个朋友问我关于复杂度为O(n)的最大回文串算法(longest palindromic substring)的问题,这个算法平时用的不多,但是一两年前接触这个算法的时候印象颇深,于是给他由简到繁地讲解了一遍,兴之所至,想把关于这个算法的一些心得总结一下,留作备份,而算法原理不多赘述。因为其间涉及了一点简单的Brute Force字符串模式匹配算法,所以先简单说说字符串模式匹配算法。 字符串模式匹配算法(string searching/matching algorithms),顾名…
Ubuntu 14.04 Trusty Tahr发行版近期发布,利用周末,刚刚装机完毕,从12.04升级到14.04,期间随机记录装机心得若干,留作备用。 下载ISO镜像并制作USB启动盘:http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-ubuntu。 备份重要数据。个人经验,如果是存有重要数据的电脑,最好只在LTS版本之间升级。由于版本兼容性的问题,能重装系统就不要单纯靠升级过渡到新系统,这样看似麻烦,但免除了不少后患。我大部分…