LeetCode Hot1072 按列翻转得到最大值等行数
题目地址思路:每次翻转一整列,然后经过N次翻转后,统计行数(一行中每个字母相同)。当存在规律相同的行的时候则相同列反转后都会变成字母相同例如(1010和0101,翻转后会变成1111,0000)。因此处理方法是找到矩阵中规律相同的行数;可以通过map key进行统计class Solution {
题目地址思路:每次翻转一整列,然后经过N次翻转后,统计行数(一行中每个字母相同)。当存在规律相同的行的时候则相同列反转后都会变成字母相同例如(1010和0101,翻转后会变成1111,0000)。因此处理方法是找到矩阵中规律相同的行数;可以通过map key进行统计class Solution {
题目地址解题思路:排列组合+递归求解,递归每一位,当递归到最后一位的时候则添加字符串class Solution { Map<Character, String> map = new HashMap(); // 构建键盘按键 { map.put('2',&
题目链接本题是典型的双指针应用场景。题目的要求是求取容积最大值,容积公式 area = Math.min(a,b) * Math.abs(b-a)初始的left = 0, right = len -1. 容积计算后,每次移动较短的一边(left++/right--).之所以移动较短边的原因是,容积公
两个思路 1. 变成字符串然后进行双指针检查 2. 颠倒数字查看和原数字是否相等。简单题,没啥好说的ans1class Solution { public boolean isPalindrome(int x) { String s = Integer.toString(x);
这个题目,核心点在于判断乘和加的时候是否会溢出,总体而言是通过Integer.MAX_VALUE/10 和 a == Integer.MAX_VALUE/10时,下一位数字是否大于7 是否溢出Integer.MAX_VALUE = 2147483647Integer.MIN_VALUE = -214
用了两种解法第一种朴素思路,将数字转化成大字符串,然后进行字符串颠倒,最后转回数字。如果转换出错,代表溢出(之前别的题解里看到的奇怪套路...)第二种稍微高效写的写法,利用取余公式获取最后一位数字,然后添加到另一个数字的个位上Code-1class Solution { public int
水一下废话,这道题第一次遇到的时候不知道为什么想到的思路是找出数学规律。。。然后就花了很多时间,而且效果不好(太久没动脑,有点动不起来了hhh)。后面看了题解以后才发现其实有十分简单的办法。解题思路:给每个字符一个行号假定给定行数为num,当行号从1开始,一直递增到num,然后行号从num开始递减至
题目地址思路1(时间复杂度过高,朴素思路):使用分格子的思想,求出当格子为1、2、3、4...max(max = 字符串长度)时是否存在回文子串如果当格子中的字符串是回文的时候,看看是否需要更新回文子串最大值class Solution { public String longestPalin