当前位置: 首页 > news >正文

php做网站和小程序很好建设一个怎样的自己的网站

php做网站和小程序很好,建设一个怎样的自己的网站,删除百度收录网站,苏州好的做网站的公司有哪些数组章节 #xff08;1#xff09;二分查找 给定一个 n 个元素有序的#xff08;升序#xff09;整型数组 nums 和一个目标值 target #xff0c;写一个函数搜索 nums 中的 target#xff0c;如果目标值存在返回下标#xff0c;否则返回 -1。 class Solution {public i…数组章节 1二分查找 给定一个 n 个元素有序的升序整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target如果目标值存在返回下标否则返回 -1。 class Solution {public int search(int[] nums, int target) {//二分查找法int rightnums.length-1;int left0;while(leftright){int mid(rightleft)/2;if(targetnums[mid]){rightmid-1;}else if(targetnums[mid]){leftmid1;}else{return mid;}}return -1;} }2双指针——移除元素 给你一个数组 nums 和一个值 val你需要 原地 移除所有数值等于 val 的元素并返回移除后数组的新长度。不要使用额外的数组空间你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 class Solution {public int removeElement(int[] nums, int val) {//双指针quick-遍历数组 slow-将不等于val的元素依次插入新数组int slow0;for(int quick0;quicknums.length;quick){if(nums[quick]!val){nums[slow]nums[quick];slow;}}return slow; //slow指针指向空位等待插入所以slow值等于新数组长度} }3有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums返回 每个数字的平方 组成的新数组要求也按 非递减顺序 排序。 class Solution {public int[] sortedSquares(int[] nums) {// 结果数组int n nums.length;int[] result new int[n];// 双指针int left 0;int right n - 1;while (left right) {if (Math.pow(nums[left], 2) Math.pow(nums[right], 2)) {result[n - 1] (int) Math.pow(nums[left], 2);left;} else {result[n - 1] (int) Math.pow(nums[right], 2);right--;}n--;}return result;} }4长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。 class Solution {public int minSubArrayLen(int target, int[] nums) {int res 2147483647;//整数最大值int len;int sum0;int i0;//i 为窗口开始位置j 为窗口终止位置for(int ji;jnums.length;j){sumnums[j];while(sumtarget){lenj-i1;resMath.min(len,res);sum-nums[i];//不断移动i直到区间内的和 target}//跳出while循环后遍历继续jj指针重新与i指针合并}return res2147483647? 0:res;//数组总和都达不到targetres没有改变} }5螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix 请按照 顺时针螺旋顺序 返回矩阵中的所有元素。 class Solution {public ListInteger spiralOrder(int[][] matrix) {//这个二维数组行列不确定ListInteger result new ArrayList();//matrix.length 行数//matrix[0].length 列数if (matrix null || matrix.length 0 || matrix[0].length 0) {return result;}int rows matrix.length; //行int cols matrix[0].length; //列//定义四个变量top、bottom、left、right分别表示当前遍历的上边界、下边界、左边界和右边界。//初始时上边界为0下边界为行数减1左边界为0右边界为列数减1。int top 0, bottom rows - 1, left 0, right cols - 1;while (top bottom left right) {// 从左到右if(right!0){ //判断只有一列的情况for (int i left; i right; i) {result.add(matrix[top][i]);}top;}// 从上到下if(bottom!0){//判断只有一行的情况for (int i top; i bottom; i) {result.add(matrix[i][right]);}right--;}// 从右到左if (top bottom) {for (int i right; i left; i--) {result.add(matrix[bottom][i]);}bottom--;}// 从下到上if (left right) {for (int i bottom; i top; i--) {result.add(matrix[i][left]);}left;}}return result;} }链表章节 6移除链表中的元素 给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {//该方法没有头结点public ListNode removeElements(ListNode head, int val) {// 处理头节点为需要删除的节点的情况while (head ! null head.val val) {//这个while需要注意head head.next;}// 处理链表为空的情况你前面持续删除首结点当然得判断链表是不是被你删空嘞if (head null) {return head;}// 遍历链表删除节点ListNode cur head;while (cur.next ! null) {if (cur.next.val val) {cur.next cur.next.next;} else {cur cur.next;}}return head; } }(7)设计链表 定义一个双链表并实现它的基本操作 //双链表class ListNode{int val;ListNode next;ListNode prev;ListNode(){}ListNode(int val){this.valval;}} class MyLinkedList {//链表长度int size;//虚拟头结点ListNode head;public MyLinkedList() {size 0;head new ListNode(0);head.next null;head.prev null;}//根据索引查询并返回元素public int get(int index) {if (index 0 || index size) {return -1;}ListNode curr head;for (int i 0; i index; i) {curr curr.next;}return curr.val;}//头插法public void addAtHead(int val) {ListNode newNode new ListNode(val);newNode.next head.next;newNode.prev head;if (head.next ! null) {head.next.prev newNode;}head.next newNode;size;}//尾插法public void addAtTail(int val) {ListNode newNode new ListNode(val);ListNode curr head;while (curr.next ! null) {curr curr.next;}curr.next newNode;newNode.prev curr;size;}//按索引添加新结点public void addAtIndex(int index, int val) {if (index 0 || index size) {return;}if (index 0) {addAtHead(val);return;}if (index size) {addAtTail(val);return;}ListNode newNode new ListNode(val);ListNode curr head;for (int i 0; i index; i) {curr curr.next;}newNode.next curr.next;newNode.prev curr;curr.next.prev newNode;curr.next newNode;size;}//按索引删除结点public void deleteAtIndex(int index) {if (index 0 || index size) {return;}ListNode curr head;for (int i 0; i index; i) {curr curr.next;}curr.next curr.next.next;if (curr.next ! null) {curr.next.prev curr;}size--;} }/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj new MyLinkedList();* int param_1 obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/(8)翻转链表 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {public ListNode reverseList(ListNode head) {//双链表ListNode curhead;ListNode prenull;ListNode tempnew ListNode();while(cur!null){tempcur.next;cur.nextpre;//这两步不能颠倒precur;curtemp;}return pre;} }(9)两两交换链表中的结点 给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {public ListNode swapPairs(ListNode head) {ListNode demonew ListNode();//虚拟头结点demo.nexthead;//让虚拟头结点指向head首结点ListNode curdemo;//遍历指针ListNode first;//保存需要交换的第一个结点ListNode second;//保存需要交换的第二个结点ListNode temp;//临时变量存储结点//开始遍历while(cur.next!null cur.next.next!null){//分别考虑链表长度为偶数和奇数情况firstcur.next;secondcur.next.next;//开始交换位置tempcur.next.next.next;//保存第二组结点的第一个结点//开始交换cur.nextsecond;second.nextfirst;first.nexttemp;//cur需要变到下一组的前面结点curfirst;//注意此时链表的顺序以及改变}return demo.next;} }10删除链表的倒数第n个结点 给你一个链表删除链表的倒数第 n 个结点并且返回链表的头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {//虚拟头结点ListNode demonew ListNode(-1);demo.nexthead;//双指针法ListNode slowdemo;ListNode fastdemo;//fast首先走n 1步 //因为只有这样同时移动的时候slow才能指向删除节点的上一个节点方便做删除操作for (int i 0; i n ; i){fastfast.next;}//双指针开始同步右移while(fast.next!null){fastfast.next;slowslow.next;}//此时slow指针指向倒数第N1个结点//开始删除slow.nextslow.next.next;//这里返回的是demo.next而不是headreturn demo.next;} }(11)链表相交 双指针法具体步骤如下 创建两个指针p1和p2分别指向两个链表的头节点。同时移动两个指针p1和p2每次移动一个节点。当其中一个指针到达链表末尾时即指向null将它指向另一个链表的头结点。继续移动两个指针直到它们相遇或者都指向null。如果两个指针相遇则说明两个链表有交点返回该节点。如果两个指针都指向null则说明两个链表没有交点返回null。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headAnull || headBnull) return null;//双指针法ListNode p1headA;ListNode p2headB;//开始遍历while(p1!p2){if(p1null){p1headB;}else{p1p1.next;}if(p2null){p2headA;}else{p2p2.next;}}return p1;} }(12)环型链表 给定一个链表的头节点 head 返回链表开始入环的第一个节点。 如果链表无环则返回 null。如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。为了表示给定链表中的环评测系统内部使用整数 pos来表示链表尾连接到链表中的位置索引从 0开始。如果 pos 是 -1则在该链表中没有环。注意pos不作为参数进行传递仅仅是为了标识链表的实际情况。不允许修改 链表。 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode detectCycle(ListNode head) {//数学题追击问题//有环必相遇//第一步判断是否有环ListNode slowhead;ListNode fasthead;while(fast!null fast.next!null){slowslow.next;//一次移动一个结点fastfast.next.next;//一次移动两个结点if(slowfast){//有环//第一步找环的第一个结点//根据公式存在n1即快指针在第二圈途中与慢指针相遇浪漫吗? 累成狗了浪漫个屁。ListNode slowRecordslow;//记录彼此的第一次邂逅,慢指针依旧原地开始走ListNode fastExhead;//快指针回head首结点重新开始追while(slowRecord!fastEx){//这回两人都得一步一步走直到相遇相遇点即为环入口slowRecordslowRecord.next;fastExfastEx.next;}return slowRecord;}}//无环无缘喽return null;} }
http://www.w-s-a.com/news/906420/

相关文章:

  • 科研实验室网站建设wordpress加载模板
  • 用r做简易的网站软件园二期做网站的公司
  • 菏泽网站建设价格长春高档网站建设
  • PHP网站开发与管理设计心得网站流量图怎么做
  • 苏州做网站企业wordpress点击文字弹出层
  • 做网站必要性中山古镇做网站
  • 增城住房和城乡建设局网站2021网站你懂我意思正能量
  • seo优秀网站深圳企业医疗网站建设
  • 单页 网站 模板重庆微信网站制作专家
  • 石家庄网站定制制作企业所得税优惠政策最新2022文件
  • 免费推广网站途径有哪些郑州企业型网站建设
  • wap网站建设设计wordpress首页名称
  • wordpress网站换空间南宁网站设计可以找我
  • 期货贵金属网站建设招远网站建设哪家专业
  • 上海网站排名个人网站可以做百度推广
  • 网站主题及样式优化个人网站 可以做论坛吗
  • 中企动力 网站推广一级域名免费申请
  • 山东专业的网站建设博罗做网站哪家强
  • 手机网站支持微信支付吗宝塔如何添加ip域名做网站
  • 什么专业学网站建设企业合同管理系统
  • 我要啦免费统计怎么做网站销售订单管理系统软件
  • 门户网站建设教程更改wordpress端口
  • 普兰店网站建设公司云计算培训
  • 网站建设的网络技术app下载平台哪个好
  • 中国建筑人才网是什么网站导购网站制作
  • 网站建设开票东莞龙岗网站建设
  • 17网站一起做网批最近湘潭的新闻
  • 专业网站设计专业服务网站news怎么做
  • 杭州租房网站建设设计网站架构
  • 安徽做网站公司哪家好建设网站需要什么内容