10 2016 档案
摘要:题目大意:给定两个数,以两个链表的形式给出,算出他们的和,最后返回一个新链表。 解题思路:把给定的两个链表逆序,求和,在把求出的和即为所求的链表。
阅读全文
摘要:题目大意: 第一个数是1,第二个数值11(1个1),第三个数值21(2个1),给定第几个数,输出相应的字符串。 思路: 起初的想法是递归,写着发现,就这么一直写就行,挺简单的。 递归解法:
阅读全文
摘要:栈的相关操作。 public class Solution { public boolean isValid(String s) { if(s == "") return true; Stack<Character> st = new Stack<Character>(); st.push(s.ch
阅读全文
摘要:题目大意: 数组经过排序,删除数组中的元素,使数组中所有元素只出现一次,返回新数组的长度。不允许分配新的数组空间。 解法一(没看到题目中的数组已经排好序了。。。): 解法二(因为已经排好序了,所以,直接判断相邻的两个元素是否相同即可):
阅读全文
摘要:题目大意:删除数组中的给定值,返回数组的长度。要求:1、不能申请额外的数组空间。
阅读全文
摘要:题目: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack
阅读全文
摘要:题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 题目大意
阅读全文
摘要:public class Solution { List> res = new ArrayList>(); public List> threeSum(int[] nums) { if(nums.length 0 && nums[i] == nums[i-1]) continue; ...
阅读全文
摘要:思路是:先取一个指针,让这个指针到达第n个节点,然后在取一个节点指向头节点,两个指针同时向后移动,直到第一个指针指向尾节点,此时第二个指针指向的节点就是要删 除的节点的前一个节点。
阅读全文
摘要:好像写的略过于麻烦了。思路是:以数组中的第一个字符串为基准,逐个扫描剩下的字符串中是不是以这个字符串为开头,如果全是,则这个字符串就为最长公共前缀字符串,否 则,让第一个字符串的长度向前走一个,以这个字符串为基准,继续寻找。 另一种实现方法:
阅读全文
摘要:题目大意: 有一个高度的数组,从中找出两个高度,这两个高度形成一个水桶,求出能够满足随同的最大体积。 解法: 1、两层for循环,每两个高度之间算一下体积,返回最大的体积(估计会超时)。 2、设置一个两个指针,一个指向头,一个指向尾部。算一下体积,如果头指针高度小于尾指针高度,头指针加一,反之尾指针
阅读全文
摘要:public class Solution { public boolean isPalindrome(int x) { if(x < 0) return false; if(x < 10) return true; int i = 1; ...
阅读全文
摘要:#include using namespace std; int main() { int n; cin >> n; int count = 0; while(n) { n = n&(n-1); count++; } cout << count << endl; return 0; }
阅读全文
摘要:也许是我没有理解清楚题意,为什么输入+-2的时候要输出0,而不是输出2呢。
阅读全文
摘要:题目大意: 把给定的字符串按照给定的行数进行“之”字形排列,最后按行输出排列的结果。 定义一个string数组 包括numRows项,每一项都是对应图中的每一行。
阅读全文
摘要:写了一个爆搜,超时了,所以更改了一个方法,使用flag数组记录标志, 动态规划,类似于lcs的解法,数组flag[i][j]记录s从i到j是不是回文 首先初始化,i>=j时,flag[i][j]=true,这是因为s[i][i]是单字符的回文,当i>j时,为true,是因为有可能出现flag[2][
阅读全文
摘要:题目大意:找到两个排序数组的中位数。 水了一发,将两个数组合并为一个数组,直接输出中位数了。(可见leetcode好像并没有对时间进行控制)。 另一种方法: 该问题换成另一种说法就是:寻找两个数组中第K小的数字,这里K=(m+n)/ 2。 首先假设数组A和B的元素个数都大于k/2,我们比较A[k/2
阅读全文