【Leetcode】二叉树 编写二叉树123456public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 题目编号226 101 226. 翻转二叉树解题思路二叉树分为左右节点,首先考虑一个节点,将左右子节点交换,然后递归到左 2020-08-26 Leetcode刷题笔记 #Java #Leetcode #二叉树
谈谈遗传算法:用遗传算法求最大值 遗传算法简介遗传算法运用自然界优胜劣汰的法则,可以解决大多数最优解问题,算法过程如下: 将要解决的问题主体进行编码,形成初始种群。 用选择函数对种群中的个体进行选择。 将生存的个体进行交叉,生成子代。 交叉中设置一定的变异率,防止陷入局部最优解。 将2.3.4.循环操作最终的到最优种群集合,在其中找到最优解 2020-08-20 谈谈技术 #python #算法 #遗传算法
【剑指offer】50. 第一个只出现一次的字符 剑指 Offer 50. 第一个只出现一次的字符题目描述在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例12345s = "abaccdeff"返回 "b"s = "" 返回 " " 解题思路1跟leetcode387差不多,只是返回值不一样,稍加修改就可以提交了。用 2020-08-19 剑指offer刷题笔记 #Java #Leetcode #字符串
【Leetcode】字符串 题目编号38 387 38.外观数列解题思路因为后一项是前一项决定的,所以用循环来做。选取第一个数,然后数后面有多少相同,最后用appned加上去。 代码12345678910111213141516171819202122232425class Solution { public String countAndSay(int n) { String str 2020-08-18 Leetcode刷题笔记 #Java #Leetcode #字符串
【Leetcode】36. 有效的数独 36.有效的数独解题思路第一想到的是哈希表,所以给每一行每一列每个九宫格设置一个哈希表,出现数字则标记,如果查询到被标记过的数字,则数独不成立。每行每列比较简单,设置一个9*10的数组就可以解决,9是数独的行和列,10是数独里面所填的值。比较数独里九宫格里的数就比较复杂,我们可以利用int做除法只能取整的特性求解。比如第一第二个九宫格(0,0) -> 0(0,1) -> 0(0,2) 2020-08-17 Leetcode刷题笔记 #Java #Leetcode
【Leetcode】滑动窗口 题目编号3 209 3. 无重复字符的最长子串解题思路一开始以子串的长度为基准,发现循环中的代码非常复杂,一不注意就出错,后来看了评论才知道应该以左边的数字为基准,外层循环遍历整个字符串,内层循环遍历当前子串是否有相同的字符。 代码123456789101112131415161718class Solution { public int lengthOfLongestSubstr 2020-05-03 Leetcode刷题笔记 #Java #Leetcode
【Leetcode】67. 二进制求和 题目编号67 67. 二进制求和解题思路之前在Java学习笔记中写到过位运算,这次在Leetcode中也遇到了,二进制只有1和0,所以将位运算加入其中,计算完一位后就将进位数移位,进行下一轮计算。 代码123456789101112131415161718192021class Solution { public String addBinary(String a, String 2020-05-03 Leetcode刷题笔记 #Java #Leetcode
【Leetcode】贪心 题目编号53 121 53. 最大子序和解题思路因为负数加负数更小,所以当目前总和为负数时,跟下一个负数只取一个较大的负数。 代码123456789101112131415public int maxSubArray(int[] nums) { int[] dt = new int[nums.length]; dt[0] = nums[0]; i 2020-04-30 Leetcode刷题笔记 #Java #Leetcode
【Leetcode】链表 题目编号206 141 21 19 876 160 编写链表12345678public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 2020-04-26 Leetcode刷题笔记 #Java #Leetcode
【Java学习】访问限制修饰符 public范围最广,可以访问任何一个在CLASSPATH下的类,接口,异常等。它往往对于对外的情况,也就是对象或类对外的一种接口的形式。 protected对本包可见,同时也是为继承设计的访问修饰符,即使子类在包外也可访问父类的protect变量或方法。 defult可以供类内部和本包中使用,任何处于本包下的类,接口,异常等,都可以互相访问,即使是父类没有用protected修饰的成员也可以。 2020-04-14 Java学习笔记 #Java