05 2020 档案

摘要:一看到井字棋游戏最先想到决策树,这个题是直接判断输赢。注意不是9个格子,是N*N个格子。那么第一步应该把一维数组放到二维数组中,否则无法遍历。 遇到X,转换成1。遇到O,转换成-1。否则为0 遍历二维数组的每一行,每一列,两条对角线。如果和为N,则输出"X",和为-N,则输出"O"。遍历时需要保存0 阅读全文
posted @ 2020-05-30 10:22 菜鸡A 阅读(768) 评论(0) 推荐(0)
摘要:这种求什么最大钱数的问题,先想到动态规划或者贪心算法。 动态规划的思路是,先判断只有一间房子的时候,那么就偷这家。有两间房,偷钱多的。 有k间房,如果偷第k间房,则k-1不能偷,最大钱数为:前k-2间房的最大钱数+k。 如果不偷第k间房,最大钱数为:前k-1间房的最大钱数。 最后处理一下数组为空的情 阅读全文
posted @ 2020-05-29 10:05 菜鸡A 阅读(199) 评论(0) 推荐(0)
摘要:一开始写了一堆if else。总觉得题目怪怪的。 像这种排好序的数组中查找元素,应该想到折半查找 class Solution { public int missingNumber(int[] nums) { int i = 0, j = nums.length - 1; while(i <= j) 阅读全文
posted @ 2020-05-27 10:35 菜鸡A 阅读(162) 评论(0) 推荐(0)
摘要:最先想到的两重for循环,超时,输入的数组很大,一整个页面的数,人直接傻了 接下来运用余数的思想。一个数除以60的余数为0~59,建立一个数组remainder保存余数出现的次数。 先不考虑余数为0和30的情况。 剩下的余数相加为60则说明可以整除。建立头尾两个指针,1与59,2与58...,如果1 阅读全文
posted @ 2020-05-25 11:32 菜鸡A 阅读(204) 评论(0) 推荐(0)