LeeCode-刷题日记-Day16
75. 颜色分类
使用任意一种排序即可解决。
(冒泡排序)
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var sortColors = function(nums) {
if(nums.length===0) return nums;
for(let i=0 ;i<nums.length;i++){
for(let j=i+1;j<nums.length;j++){
if(nums[i]>nums[j]){
let temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}
return nums;
};
56. 合并区间
先对于intervals
的内容进行按照第一个字符进行排序,再比较第二个字符的大小。如果满足前一组数据的第二个字符小于当前数据的第一个字符,那么直接插入,为不相交区间。当大于时,比较前一组数据的第二个字符与当前数据的第二个字符的大小,取大的赋值给前一组数据的第二个字符。
/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(intervals) {
const n=intervals.length;
intervals.sort((a,b)=>a[0]-b[0]);
const ans = [intervals[0]];
for(let i = 1;i<n;i++){
const pre = ans[ans.length-1];
if(intervals[i][0]<=pre[1]){
pre[1]= Math.max(intervals[i][1],pre[1]);
}else{
ans.push(intervals[i]);
}
}
return ans;
};
706. 设计哈希映射
var MyHashMap = function() {
this.ans = new Array();
};
/**
* @param {number} key
* @param {number} value
* @return {void}
*/
MyHashMap.prototype.put = function(key, value) {
for(let i=0;i<this.ans.length;i++){
if(this.ans[i][0]===key){
this.ans[i][1]=value;
return ;
}
}
this.ans.push([key,value]);
};
/**
* @param {number} key
* @return {number}
*/
MyHashMap.prototype.get = function(key) {
for(let i=0;i<this.ans.length;i++){
if(this.ans[i][0]===key)
return this.ans[i][1];
}
return -1;
};
/**
* @param {number} key
* @return {void}
*/
MyHashMap.prototype.remove = function(key) {
for(let i=0;i<this.ans.length;i++){
if(this.ans[i][0]===key)
this.ans.splice(i,1);
}
};
/**
* Your MyHashMap object will be instantiated and called as such:
* var obj = new MyHashMap()
* obj.put(key,value)
* var param_2 = obj.get(key)
* obj.remove(key)
*/
119. 杨辉三角 II
/**
* @param {number} rowIndex
* @return {number[]}
*/
var getRow = function(rowIndex) {
let ans = new Array();
ans.push([1]);
ans.push([1,1]);
if(rowIndex<2){
return ans[rowIndex];
}
for(let i=2;i<=rowIndex;i++){
ans.push([1]);
for(let j=1;j<=i;j++){
let k=ans[i-1][j]+ans[i-1][j-1];
if(j===i) ans[i].push(1);
else ans[i].push(k);
}
}
return ans[rowIndex];
};
48. 旋转图像
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function(matrix) {
let r=matrix.length;
let l=matrix[0].length;
let i=r-1;
for(let j=0,k=r;j<l;j++,k++){
matrix.push([matrix[i][j]]);
for(i=r-2;i>=0;i--){
matrix[k].push([matrix[i][j]]);
}
i=r-1;
}
matrix.splice(matrix[0],r)
};
- 本文链接:https://archer-lan.github.io/2023/11/20/LeeCode-%E5%88%B7%E9%A2%98%E6%97%A5%E8%AE%B0-Day16/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。