- 博客(54)
- 收藏
- 关注
原创 IP地址,子网掩码,默认网关,DNS讲解
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。:域名服务器,用来解析域名的(域名与IP之间的解析),如果没有这东西,你必须输入网站的IP地址,有了DNS,你就可以直接输入网址。
2023-09-14 22:50:33
4884
原创 【无标题】
spring mvc @RequestMapping method GET、POST区别method 不写的话,默认GET、POST都支持,根据前端方式自动适应。超链接是get请求。from表单是post请求。
2021-12-07 16:11:11
92
原创 2021-11-10
一点小技巧:前端调用后端(controller)接口的数量尽量要少,避免以后随着项目的增大,使代码显得更加混乱(维护也不便);另外,函数中代码也尽量减少冗余,否则,对日后维护不便,如:if(a){ A B C1}else{ A B C2}if…else中的代码能抽出来写个函数尽量写个函数,使代码更清晰简洁,便于维护,可以改成:function D(){ A B}if(a){ D C1}else{ D C2}前端的页面数量也尽量要少(减少冗余);...
2021-11-10 16:40:45
97
原创 2021-11-09
打乱数组public class Shuffle { public static void main(String[] args) { int[] arr = new int[10]; //初始化数组 for (int i = 0; i < arr.length; i++) { arr[i] = i; } System.out.println("数组打乱之前"); //打印
2021-11-09 23:53:45
103
原创 2021-10-15
买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
2021-10-15 17:20:49
189
原创 2021-10-14
罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 X
2021-10-14 17:58:54
199
原创 2021-10-14
3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。示例 1: 输入:n = 27 输出:true示例 2: 输入:n = 0 输出:false示例 3: 输入:n = 9 输出:true示例 4: 输入:n = 45 输出:false方法1:一直除以3判断n是否能够被3整除,如果能够被3整除就除以3,直到不能被3整除为止,最后判断n是否等于1。 public boolean isPowerOfThree(i
2021-10-14 14:23:41
196
原创 2021-10-14
计数质数统计所有小于非负整数 n 的质数的数量。示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n = 0 输出:0示例 3: 输入:n = 1 输出:0厄拉多塞筛法:先将 2~n 的各个数放入表中,然后在2的上面画一个圆圈,然后划去2的其他倍数;第一个既未画圈又没有被划去的数是3,将它画圈,再划去3的其他倍数;现在既未画圈又没有被划去的第一个数 是5,将它画圈,并划去5的其他倍数……依次类推,
2021-10-14 12:27:52
85
原创 2021-09-30
验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。递归实现:public boolean isValidBST(TreeNode root) { return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);}public boolean
2021-09-30 00:14:22
103
原创 2021-09-29
环形链表给定一个链表,判断链表中是否有环。方法1:快慢指针解决最简单的一种方式就是快慢指针,慢指针针每次走一步,快指针每次走两步,如果相遇就说明有环,如果有一个为空说明没有环。代码比较简单public boolean hasCycle(ListNode head) { if (head == null) return false; //快慢两个指针 ListNode slow = head; ListNode fast = head; wh
2021-09-29 00:53:41
93
原创 2021-09-29
回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。使用栈解决public boolean isPalindrome(ListNode head) { ListNode temp = head; Stack<Integer> stack = new Stack(); //把链表节点的值存放到栈中 while (temp != null) { stack.push(te
2021-09-29 00:21:45
77
原创 2021-09-25
反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。方法1:使用栈解决最简单的一种方式就是使用栈,因为栈是先进后出的。实现原理就是把链表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。public ListNode reverseList(ListNode head) { Stack<ListNode> stack = new Stack<>(); //把链表节点全部摘掉放到栈中 whil
2021-09-25 22:55:32
74
原创 2021-09-24
删除链表中的节点编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入:head = [4,5,1,9], node = 1 输出:[4,5,9] 解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,
2021-09-24 00:16:04
84
原创 2021-09-23
最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。public class StrLongestCommonPrefix { public static String longestCommonPrefix(String[] strs) { //边界条件判断 if (strs == null || strs.length == 0) return "";
2021-09-23 23:37:12
72
原创 2021-09-22
验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串示例 2: 输入: "race a car" 输出: false 解释:"raceacar" 不是回文串方法1:双指针解决一个指向前,一个指向后,遇到空格以及特殊字符要跳过,然后判断,画个图来看下:public boolean
2021-09-22 21:07:48
98
原创 2021-09-19
有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false方法1:计算两个字符串中字符的差值先统计字符串s中每个字符的数量;减去t中每个字符对应的数量;如果最后结果都是0,说明t是s的字母异位词。
2021-09-19 18:31:49
97
原创 2021-09-18
Java HashMap getOrDefault() 方法getOrDefault(Object key, V defaultValue)当Map集合中有key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue。
2021-09-18 00:13:26
82
原创 2021-09-18
字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2方法:两次遍历(借助HashMap)第一遍先统计每个字符出现的次数,第二遍再次从前往后遍历字符串s中的每个字符,如果某个字符出现一次直接返回,原来比较简单,看下代码public int firstUniqChar(String s) { Map<Character,
2021-09-18 00:11:09
81
原创 2021-09-17
整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。示例 1: 输入:x = 123 输出:321示例 2: 输入:x = -123 输出:-321示例 3: 输入:x = 120 输出:21示例 4: 输入:x = 0 输出:0public int reverse(int x) { int res = 0; while (x != 0) { int t = x % 10;
2021-09-17 23:29:01
82
原创 2021-09-14
旋转图像给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]方法:先上下交换,再对角线交换 pu
2021-09-15 15:36:10
74
原创 2021-09-14
将两个有序数组合并为一个有序数组要求:不能调包,不能手动实现排序算法public class Sort { public static int[] sort(int[] num1, int[] num2){ //变量用于存储两个集合应该被比较的索引(存入新集合就加一) int a = 0; int b = 0; int[] num3 = new int[num1.length + num2.length]; for
2021-09-14 19:23:36
66
原创 2021-09-14
两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。方法1:暴力破解法简单,但是效率低。public in
2021-09-14 00:44:06
90
原创 2021-09-14
两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], targ
2021-09-14 00:39:24
58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人