做外贸重新设计网站,网站链接锚点怎么做,建设网站 翻译,抖音代运营一般哪家好SouthLeetCode-打卡24年01月第3周
// Date : 2024/01/15 ~ 2024/01/21
013.二分查找
(1) 题目描述
013#LeetCode.27.#北岸计划2024/01/15
// 略
(2) 题解代码
// 重做
014.移除元素
(1) 题目描述
014#LeetCode.160.#北岸计划2024/01/16
(2) 题解代码
Version1.0
c…SouthLeetCode-打卡24年01月第3周
// Date : 2024/01/15 ~ 2024/01/21
013.二分查找
(1) 题目描述
013#LeetCode.27.#北岸计划2024/01/15
// 略
(2) 题解代码
// 重做
014.移除元素
(1) 题目描述
014#LeetCode.160.#北岸计划2024/01/16
(2) 题解代码
Version1.0
class Solution {public int removeElement(int[] nums, int val) {int length nums.length;for(int i0 ;ilength ; i){while(nums[length-1] val){length--;if(length i){return length;}}if(nums[i] val){nums[i] nums[length-1];length--;}}return length;}
}015.有序数组的平方和
(1) 题目描述
015#LeetCode.977.#代码随想录0042024/01/17
给你一个按 非递减顺序 排序的整数数组 nums返回 每个数字的平方 组成的新数组要求也按 非递减顺序 排序。
(2) 题解代码
// 重做
016.螺旋矩阵Ⅱ
(1) 题目描述
016#LeetCode.59.#北岸计划2024/01/17
给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
(2) 题解代码
class Solution {public int[][] generateMatrix(int n) {int[][] matrix new int[n][n];int sup 0;int sub n-1;int left 0;int right n-1;int count 1;while(sup sub left right){for(int ileft ; iright ; i){matrix[sup][i] count;count;}sup;for(int isup ; isub ; i){matrix[i][right] count;count;}right--;for(int iright ; ileft ; i--){matrix[sub][i] count;count;}sub--;for(int isub ; isup ; i--){matrix[i][left] count;count;}left;}return matrix;}
}017.移除链表元素
(1) 题目描述
017#LeetCode.203.#北岸计划2024/01/17
给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。
(2) 题解代码
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummy new ListNode();dummy.next head;ListNode prev dummy;ListNode curr head;while(curr ! null){if(curr.val val){prev.next curr.next;}else{prev prev.next;}curr curr.next;}return dummy.next;}
}018.长度最小的子数组
(1) 题目描述
018#LeetCode.209.#北岸计划2024/01/18
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [nums_l, nums_l1, ..., nums_r-1, nums_r] 并返回其长度**。**
如果不存在符合条件的子数组返回 0 。
(2) 题解代码
// 重做
019.设计链表-单链表
(1) 题目描述
019#LeetCode.707.#北岸计划2024/01/19
你可以选择使用单链表或者双链表设计并实现自己的链表。
单链表中的节点应该具备两个属性val 和 next 。val 是当前节点的值next 是指向下一个节点的指针/引用。
如果是双向链表则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。
实现 MyLinkedList 类
MyLinkedList() 初始化 MyLinkedList 对象。int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效则返回 -1 。void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后新节点会成为链表的第一个节点。void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度那么该节点会被追加到链表的末尾。如果 index 比长度更大该节点将 不会插入 到链表中。void deleteAtIndex(int index) 如果下标有效则删除链表中下标为 index 的节点。
(2) 题解代码
public class MySingleLinkedList {ListNode head;int length;public MySingleLinkedList () {head new ListNode(-Integer.MAX_VALUE);length 0;}public int get(int index) {if(length 0 || index length-1 || index 0){//索引有效性检查return -1;}else{ListNode cur head;for(int i0 ; iindex ; i){cur cur.next;}return cur.val;}}public void addAtHead(int val) {if(length 0){head.val val;}else{int hVal head.val;ListNode node new ListNode(hVal);head.val val;node.next head.next;head.next node;}length;}public void addAtTail(int val) {if(length 0){head.val val;}else{ListNode node new ListNode(val);ListNode cur head;while(cur.next ! null){cur cur.next;}cur.next node;}length;}public void addAtIndex(int index, int val) {if(length 0 index length){head.val val;length;}else if(index length){if(index 0){addAtHead(val);length--;}else if(index length){addAtTail(val);length--;}else if(index length){ListNode node new ListNode(val);ListNode cur head;for(int i0 ; iindex-1 ; i){cur cur.next;}node.next cur.next;cur.next node;}length;}else if(index length){}}public void deleteAtIndex(int index) {ListNode cur head;if(index 0 || index length-1){if(index 0) head head.next;if(index length-1){for(int i0 ; iindex-1 ; i){cur cur.next;}cur.next null;}}else if(index 0 index length){for(int i0 ; iindex-1 ; i){cur cur.next;}cur.next cur.next.next;}else{// index 0 || index length-1length;}length--;}public void print(){ListNode cur head;while(cur ! null){if(cur ! head){System.out.print(-);}System.out.print(【 cur.val 】);cur cur.next;}System.out.println();}public void manualCreatList(){// 手动建表ListNode node1 new ListNode(2);ListNode node2 new ListNode(4);ListNode node3 new ListNode(6);head.val 0;head.next node1;node1.next node2;node2.next node3;length 4;}
}020.搜索插入位置
(1) 题目描述
020#LeetCode.35.#北岸计划2024/01/20
给定一个排序数组和一个目标值在数组中找到目标值并返回其索引。如果目标值不存在于数组中返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
(2) 题解代码
class Solution {public int searchInsert(int[] nums, int target) {int length nums.length;int left 0;int right length-1;int result;while(right - left 1){int mid (left right)/2;if(nums[mid] target){right mid;}else if(nums[mid] target){left mid;}else{return mid;}}boolean found nums[left] target || nums[right] target;boolean internal nums[left] target nums[right] target;if(found){result nums[left] target ? left : right;}else{if(internal){result right;}else{result nums[right] target ? right1 : left;}}return result;}
}021.设计链表-单链表
(1) 题目描述
021#LeetCode.707.#北岸计划2024/01/21
// 略
(2) 题解代码
// 优化整理