随笔分类 -  数据结构与算法

摘要:题目描述如图: 解法基本分为两类,一类是转成字符数组,然后逐个比较左边和右边的字符,或者是转成字符串,然后反转,再进行比较,其本质都是单个字符的比较,大家都能想到,就不写了。 另一类是直接对数字进行操作, "leetcode上有人例举了,还不错" 。我写完之后,看别人的代码,简洁好多,自叹不如(不过 阅读全文
posted @ 2019-06-11 13:31 平湖 阅读(175) 评论(0) 推荐(0)
摘要:题目如图: 比较简单,代码如下: java private static int removeDuplicates(int[] nums) { int length = nums.length; int headIndex = 0, tailIndex = 1; for (; tailIndex 阅读全文
posted @ 2019-06-11 13:24 平湖 阅读(71) 评论(0) 推荐(0)
摘要:题目如图: 其实这道题相当于让我们自己手写indexOf(),平时用惯了api,手写起来不是很容易,我自己就换了好几种写法,代码如下: java private static int strStr(String haystack, String needle) { if (haystack == n 阅读全文
posted @ 2019-06-11 13:23 平湖 阅读(139) 评论(0) 推荐(0)
摘要:题目描述如图: 解法一:将待匹配的左括号放入队列或栈(因为只需拿最近一个元素并删除,用数组都行,只不过队列封装了removeLast(),所以直接用就好了) java private static boolean notMatch(char left, char right){ return (le 阅读全文
posted @ 2019-06-11 13:22 平湖 阅读(153) 评论(0) 推荐(0)
摘要:```java private static void quickSort(int left, int right, int[] array) { if (left right) { return; } int leftIndex = left, rightIndex = right, flag = 阅读全文
posted @ 2019-06-05 17:07 平湖 阅读(138) 评论(0) 推荐(0)
摘要:昨天杭州大搜车面试,面试官出了一道字符算法题,如下: 给定一个字符数组,例如 找出数组中出现次数最多的字符,如果存在相同次数的字符,取第一次出现的字符。 一个问题的解决方案有多种,我当时说了两种(手写了第一种): 利用数据结构的特性,链表保证了插入顺序,Map正是我们想要的字符与出现次数对应关系的映 阅读全文
posted @ 2019-06-05 16:59 平湖 阅读(700) 评论(0) 推荐(0)