LeetCode
zhaoy1121
这个作者很懒,什么都没留下…
展开
-
leetcode 13罗马数字转整数
解题思路:使用Map集合把题目规则记录在集合里,遍历字符串,获取当前和后一个字符,通过键值对获取他们所对应的值。如果前面的小后面的大,则做减法,与sum相加,i++(因为两个字符都进行了计算),如果前面的大后面的小,则把当前字符所对应的值加到sum中。最后返回sum。 class Solution { public int romanToInt(String s) { Map<St...原创 2019-07-25 22:27:30 · 91 阅读 · 0 评论 -
leetcode 14最长公共前缀
解题思路:由于前缀最大的长度不能超过字符串数组中最短的字符串的长度,所以先记录最短字符串的长度。然后以第一个字符串为模板逐个比较剩余的字符串,得出最长前缀的长度。使用字符串截取方法把前缀截取出来并返回。 class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0) { ...原创 2019-07-25 23:35:47 · 101 阅读 · 0 评论 -
leetcode 20有效的括号
解题思路:根据题意可知,括号必须是成对的,在括号里面的括号也必须是成对的,由此可知使用栈这种“先进后出”的特性可以很方便的解决此问题。遍历字符串,当字符为'('、'['、'{'时进行压栈操作,当字符为')'、']'、'}'时取出栈中的一个字符判断是不是成对的,如果不是直接返回false。最后还要检查一下栈里还有没有元素。 class Solution { public boolean isV...原创 2019-07-27 22:59:25 · 90 阅读 · 0 评论 -
leetcode 26 删除排序数组中的重复项
解题思路:如果存在相同的,把下一个不同的覆盖到相同的第二个。如果相邻的没有重复项,覆盖原来的就好。 class Solution { public int removeDuplicates(int[] nums) { if (nums.length == 0) { return 0; } int number = 0; for (int i = 0; i < nu...原创 2019-08-08 22:45:12 · 75 阅读 · 0 评论 -
leetcode 21 合并两个有序链表
解题思路:题意就是思路。 class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode p = new ListNode(0); ListNode head=p; while(l1!=null&&l2!=null) { if...原创 2019-08-06 23:13:22 · 76 阅读 · 0 评论 -
leetcode 27 移除元素
解题思路:在原数组上相当于开辟一个新数组。与val不一样的按顺序摆放就好了。 class Solution { public int removeElement(int[] nums, int val) { int num = 0; if (nums.length == 0) { return num; } for (int i = 0; i < nums.len...原创 2019-08-10 22:51:35 · 75 阅读 · 0 评论 -
leetcode 28 实现 strStr()
解题思路:按个比较,找出第一个一样的。 class Solution { public int strStr(String haystack, String needle) { if (needle.length() == 0) { return 0; } for (int i = 0; i <= (haystack.length() - needle.length(...原创 2019-08-10 23:56:59 · 104 阅读 · 0 评论