摘要:
1,常规的想法是用两个指针,1个指向要判断的元素,另一个找到大于此元素的元素下标 2,但这个算法的时间复制度是O(n^2) 3,我们可以使用栈来解决此类问题 4,遍历元素,当元素小于栈顶元素时,元素进栈; 5,当元素大于栈顶元素时,则计算栈顶元素与当前元素的距离 6,如此时间复制度为O(n) imp 阅读全文
posted @ 2020-04-19 23:00
冬马党
阅读(164)
评论(0)
推荐(0)
摘要:
这里利用了map集合,思路是将第一个字符串的字母都放入map中 然后遍历第二个字符串,试图将所有字母从map中取出 最后判断map是否为空即可 import java.util.*; public class Client { public static void main(String[] arg 阅读全文
posted @ 2020-04-19 22:20
冬马党
阅读(606)
评论(0)
推荐(0)
摘要:
这是栈的一个经典利用场景,除此外,栈一般还利用在方法栈和递归当中 import java.util.*; public class Client { public static void main(String[] args) { String str = "()([])[]"; boolean v 阅读全文
posted @ 2020-04-19 15:16
冬马党
阅读(278)
评论(0)
推荐(0)
摘要:
利用快慢指针来实现,快指针先执行头节点的第n个节点,慢指针指向头节点 然后快慢指针一起移动,当快指针指向尾节点时,慢指针的下一个节点就是要移除的节点 代码实现: public class Client { public static void main(String[] args) { ListNo 阅读全文
posted @ 2020-04-19 14:56
冬马党
阅读(454)
评论(0)
推荐(0)
摘要:
public class Client { public static void main(String[] args) { int[] height = {2,8,3,4}; int area = maxContainer(height); System.out.println(area); } 阅读全文
posted @ 2020-04-19 12:33
冬马党
阅读(554)
评论(0)
推荐(0)
摘要:
public class Client { public static void main(String[] args) { int i = 1625262; boolean palindromeNum = isPalindromeNum(i); System.out.println(palindr 阅读全文
posted @ 2020-04-19 10:45
冬马党
阅读(226)
评论(0)
推荐(0)
摘要:
public static void main(String[] args) { int i = 9876; int num = caleReverseNum(i); System.out.println(num); } /** * 时间复杂度为n的位数 */ static int caleReve 阅读全文
posted @ 2020-04-19 10:10
冬马党
阅读(161)
评论(0)
推荐(0)
摘要:
import java.util.*; public class Client { public static void main(String[] args) { String str = "abcdefghijk"; char[][] chars = strArr(str, 4); for (c 阅读全文
posted @ 2020-04-19 09:43
冬马党
阅读(302)
评论(0)
推荐(0)
摘要:
思路: 利用左右指针和map数据结构 求左右指针的最大间隔 遍历字符数组,如果在map中不存在,则右指针右移,并求最大长度 如果在map中存在,则左指针右移 import java.util.*; public class Client { public static void main(Strin 阅读全文
posted @ 2020-04-19 08:58
冬马党
阅读(379)
评论(0)
推荐(0)

浙公网安备 33010602011771号