0
点赞
收藏
分享

微信扫一扫

每日总结4/12

b91bff6ffdb5 2022-04-14 阅读 44
java

今日完成

力扣专项突破SQL(1667,1484,1527)
力扣算法双指针(977,189)
力扣数据结构数组(1,88)

总结

SQL

concat('my','s','ql')    字符串拼接

left('fsdakflja',5)      取字符串前5个

substring('fsdlkjfgd',5) 跳过前5个取后面的字符

lower('KJGDFJKGSFDJ')    大写改小写

upper('dssdfkjsdlf')     小写改大写

group_concat(xxxx)       分组拼接函数

group by                 分组计算

order by                 升序排序

算法:双指针

977:有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

示例 1:

输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]

示例 2:

输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]

//方法一:对数组先进行平方,然后再排序
//该方法时间复杂度为:O(nlogn)
//空间复杂度为:O(logn)
public class Solution{
	public int sortedSquares(int[] nums){
		int[] result = new int[nums.length];
		for(int i = 0; i < nums.length; i++){
			result[i] = nums[i] * nums[i];
		}
		Arrays.sort(result);
		return result;
	}
}

//方法二:双指针
//该方法时间复杂度为:O(n)
//空间复杂度为:O(1)
//最大值只可能出现在该数组的两端
public class Solution{
	public int sortedSquares(int[] nums){
		int left = 0;
		int right = nums.length - 1;
		int[] result = new int[nums.length];
		k = nums.length - 1;
		while(left <= right){
			if(nums[left]*nums[left] > nums[right]*nums[right]){
				result[k] = nums[left] * nums[left];
				left++;
				k--;
			}else{
				result[k] = nums[right] * nums[right];
				right--;
				k--;
			}
		}
		return result;
	}
}

189:轮转数组

给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

//该方法就是将排列好的数组复制到nums中,倒是没用到双指针
//System.arraycopy(newArr, 0, nums, 0, nums.length);将newArr从下标0开始复制到nums从下标0开始 长度为nums.length
//时间复杂度:O(n)
//空间复杂度:O(n)
public class Solution{
	public void rotate(int[] nums, int k){
		int[] newArr = new int[nums.length];
		for(int i = 0; i < nums.length; i++){
			newArr[(i + k) % nums.length] = nums[i];
		}
		System.arraycopy(newArr, 0, nums, 0, nums.length);
	}
}

数据结构:数组

题中用到了hashmap, 但现在学的还有点懵懵的,再做几个题再总结

今日没总结java,些许摆烂了。。。。。。。。。。。明日弥补过来。。。

明日计划

力扣SQL题
力扣算法题
力扣数据结构题
补昨天的java,MySQL,linux命令总结
java总结
mysql总结
linux总结
举报

相关推荐

0 条评论