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

网站建设后商品进不去详情页企业设计个网站

网站建设后商品进不去详情页,企业设计个网站,做窗帘网站,网站做自适应的好处文章目录 链表反转链表合并删除链表倒数第 n 个结点找链表的中间结点链表中环的检测排序算法递归 趁空闲时间刷一遍极客时间上王争的《数据结构与算法之美》课程#xff0c;个人觉得写的很好#xff0c;每章节由浅入深且从基础到引入设计类问题#xff0c;如果写过很多代码想… 文章目录 链表反转链表合并删除链表倒数第 n 个结点找链表的中间结点链表中环的检测排序算法递归 趁空闲时间刷一遍极客时间上王争的《数据结构与算法之美》课程个人觉得写的很好每章节由浅入深且从基础到引入设计类问题如果写过很多代码想要进行架构设计转型时再回头看这些基础知识还蛮有趣的以下纪录下随着课程走的部分实现代码和思考 内容主要是笔记和代码注手写一遍代码是有必要的 链表反转 单链表反转 class ListNode { int val; ListNode next; ListNode(int val) { this.val val; this.next null; } public ListNode reverseList(ListNode head) { ListNode prev null; ListNode curr head; while (curr ! null) { ListNode nextTemp curr.next; // 临时保存下一个节点 curr.next prev; // 反转当前节点的指针 prev curr; // 将前一个节点移动到当前节点 curr nextTemp; // 将当前节点移动到下一个节点 } return prev; // prev 最后会指向新的头节点 } }链表合并 两个有序的链表合并用到了哨兵dummy这个指针记录 class ListNode { int val; ListNode next; ListNode(int val) { this.val val; this.next null; } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { // 创建一个哨兵节点方便处理边界情况 ListNode dummy new ListNode(0); ListNode curr dummy; // 使用两个指针分别遍历两个链表 while (l1 ! null l2 ! null) { if (l1.val l2.val) { curr.next l1; l1 l1.next; } else { curr.next l2; l2 l2.next; } curr curr.next; } // 处理剩余节点只能有一个链表还有剩余节点 if (l1 ! null) { curr.next l1; } else { curr.next l2; } } }删除链表倒数第 n 个结点 使用快慢指针快慢指针在解很多链表题目中都有体现 class ListNode { int val; ListNode next; ListNode(int val) { this.val val; this.next null; } public ListNode removeNthFromEnd(ListNode head, int n) { // 创建一个哨兵节点简化头节点被删除的情况 ListNode dummy new ListNode(0); dummy.next head;// 初始化快慢指针 ListNode fast dummy; ListNode slow dummy; // 先将快指针向前移动 n1 步 for (int i 0; i n; i) { fast fast.next; } // 然后同时移动快慢指针直到快指针到达链表末尾 while (fast ! null) { fast fast.next; slow slow.next; } // 此时慢指针指向的节点的下一个节点就是要删除的节点 slow.next slow.next.next; // 返回头节点注意是哨兵节点的下一个节点 return dummy.next; } }找链表的中间结点 使用快慢指针来实现快指针每次移动2步而慢指针每次移动1步。当快指针到达链表末尾时慢指针将恰好位于链表的中间。 class ListNode { int val; ListNode next; ListNode(int val) { this.val val; this.next null; } public ListNode findMiddle(ListNode head) { // 初始化快慢指针 ListNode slow head; ListNode fast head; // 快指针每次移动两步慢指针每次移动一步 while (fast ! null fast.next ! null) { slow slow.next; // 慢指针移动一步 fast fast.next.next; // 快指针移动两步 } // 当快指针到达链表末尾时慢指针指向中间节点 return slow; } }链表中环的检测 快慢指针进行遍历如果快慢指针不相遇说明没有环 class ListNode { int val; ListNode next;ListNode(int val) { this.val val; this.next null; } public boolean hasCycle(ListNode head) { if (head null || head.next null) { // 如果链表为空或只有一个节点则不可能有环 return false; } ListNode slow head; ListNode fast head;// 快慢指针开始移动直到它们相遇或快指针到达链表末尾 while (fast ! null fast.next ! null) { slow slow.next; // 慢指针每次移动一步 fast fast.next.next; // 快指针每次移动两步 // 如果快慢指针相遇说明链表中存在环 if (slow fast) { return true; } }// 快指针到达链表末尾说明链表中没有环 return false; } }排序算法 常用的冒泡、选择、插入、归并、快速算法手写很重要写出来会发现即使是一个小的改动对于程序的消耗来说都有所差别 关于排序的算法还可以参照https://mp.weixin.qq.com/s/HQg3BzzQfJXcWyltsgOfCQ 在要求高效的很多基础框架代码中都是用了快速排序递归思路 // 冒泡排序 void bubbleSort(int[] arr) { int n arr.length; for (int i 0; i n - 1; i) { for (int j 0; j n - i - 1; j) { if (arr[j] arr[j 1]) { // 交换arr[j]和arr[j 1] int temp arr[j]; arr[j] arr[j 1]; arr[j 1] temp; } } } } // 选择排序 void selectionSort(int[] arr) { int n arr.length; for (int i 0; i n - 1; i) { int minIdx i; for (int j i 1; j n; j) { if (arr[j] arr[minIdx]) { minIdx j; } } // 交换arr[i]和arr[minIdx] int temp arr[minIdx]; arr[minIdx] arr[i]; arr[i] temp; } } // 插入排序 void insertionSort(int[] arr) { int n arr.length; for (int i 1; i n; i) { int key arr[i]; int j i - 1; // 将arr[i]插入到已排序部分arr[0..i-1] while (j 0 arr[j] key) { arr[j 1] arr[j]; j j - 1; } arr[j 1] key; } } // 归并排序 void mergeSort(int[] arr, int left, int right) { if (left right) { int mid left (right - left) / 2; // 递归排序两个子数组 mergeSort(arr, left, mid); mergeSort(arr, mid 1, right); // 合并两个已排序的子数组 merge(arr, left, mid, right); } } void merge(int[] arr, int left, int mid, int right) { int n1 mid - left 1; int n2 right - mid; int[] L new int[n1]; int[] R new int[n2]; for (int i 0; i n1; i) L[i] arr[left i]; for (int j 0; j n2; j) R[j] arr[mid 1 j]; int i 0, j 0; int k left; while (i n1 j n2) { if (L[i] R[j]) { arr[k] L[i]; i; } else { arr[k] R[j]; j; } k; } while (i n1) { arr[k] L[i]; i; k; } while (j n2) { arr[k] R[j]; j; k; } } // 快速排序 void quickSort(int[] arr, int low, int high) { if (low high) { int pi partition(arr, low, high); // 递归排序两个子数组 quickSort(arr, low, pi - 1); quickSort(arr, pi 1, high); } } int partition(int[] arr, int low, int high) { int pivot arr[high]; int i (low - 1); for (int j low; j high; j) { if (arr[j] pivot) { i; // 交换arr[i]和arr[j] int temp arr[i]; arr[i] arr[j]; arr[j] temp; } } // 交换arr[i 1]和arr[high] (或pivot) int temp arr[i 1]; arr[i 1] arr[high]; arr[high] temp; return i 1; }递归 递归是一种分治的思维不适合人类大脑但天然是计算机的处理方式人类大脑总是想把事情的步骤想的很清晰12345每一步骤做什么但是计算机不是这样的 递归也存在堆栈溢出和重复计算的问题专栏中也给了对应的方式重复计算可以通过缓存来解决 // 上楼梯问题中可以适当增加缓存来消除重复计算 public int f(int n) {if (n 1) return 1;if (n 2) return 2;// hasSolvedList 可以理解成一个 Mapkey 是 nvalue 是 f(n)if (hasSolvedList.containsKey(n)) {return hasSovledList.get(n);}int ret f(n-1) f(n-2);hasSovledList.put(n, ret);return ret; }
文章转载自:
http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn
http://www.morning.plkrl.cn.gov.cn.plkrl.cn
http://www.morning.thzwj.cn.gov.cn.thzwj.cn
http://www.morning.mqldj.cn.gov.cn.mqldj.cn
http://www.morning.lwzgn.cn.gov.cn.lwzgn.cn
http://www.morning.yrbp.cn.gov.cn.yrbp.cn
http://www.morning.pmjhm.cn.gov.cn.pmjhm.cn
http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn
http://www.morning.trfh.cn.gov.cn.trfh.cn
http://www.morning.xfcjs.cn.gov.cn.xfcjs.cn
http://www.morning.pmxw.cn.gov.cn.pmxw.cn
http://www.morning.gqksd.cn.gov.cn.gqksd.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.mznqz.cn.gov.cn.mznqz.cn
http://www.morning.knmp.cn.gov.cn.knmp.cn
http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn
http://www.morning.rqlf.cn.gov.cn.rqlf.cn
http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com
http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn
http://www.morning.tpdg.cn.gov.cn.tpdg.cn
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.rtbj.cn.gov.cn.rtbj.cn
http://www.morning.clwhf.cn.gov.cn.clwhf.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn
http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn
http://www.morning.ntnml.cn.gov.cn.ntnml.cn
http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn
http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn
http://www.morning.jlktz.cn.gov.cn.jlktz.cn
http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn
http://www.morning.ngcw.cn.gov.cn.ngcw.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.rgpy.cn.gov.cn.rgpy.cn
http://www.morning.okiner.com.gov.cn.okiner.com
http://www.morning.npmcf.cn.gov.cn.npmcf.cn
http://www.morning.gpnfg.cn.gov.cn.gpnfg.cn
http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn
http://www.morning.mysmz.cn.gov.cn.mysmz.cn
http://www.morning.llcsd.cn.gov.cn.llcsd.cn
http://www.morning.blfgh.cn.gov.cn.blfgh.cn
http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn
http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn
http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn
http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn
http://www.morning.bbgr.cn.gov.cn.bbgr.cn
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn
http://www.morning.kbntl.cn.gov.cn.kbntl.cn
http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn
http://www.morning.pmptm.cn.gov.cn.pmptm.cn
http://www.morning.gynls.cn.gov.cn.gynls.cn
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.morning.lwzgn.cn.gov.cn.lwzgn.cn
http://www.morning.qszyd.cn.gov.cn.qszyd.cn
http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com
http://www.morning.yesidu.com.gov.cn.yesidu.com
http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn
http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn
http://www.morning.jwsrp.cn.gov.cn.jwsrp.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.wcgfy.cn.gov.cn.wcgfy.cn
http://www.morning.mrckk.cn.gov.cn.mrckk.cn
http://www.morning.lchtb.cn.gov.cn.lchtb.cn
http://www.morning.lxfyn.cn.gov.cn.lxfyn.cn
http://www.morning.pqhfx.cn.gov.cn.pqhfx.cn
http://www.morning.qkqhr.cn.gov.cn.qkqhr.cn
http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn
http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn
http://www.morning.bhwll.cn.gov.cn.bhwll.cn
http://www.morning.knsmh.cn.gov.cn.knsmh.cn
http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn
http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn
http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn
http://www.morning.qzglh.cn.gov.cn.qzglh.cn
http://www.morning.hqzmz.cn.gov.cn.hqzmz.cn
http://www.morning.fbylq.cn.gov.cn.fbylq.cn
http://www.morning.fqqcn.cn.gov.cn.fqqcn.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.zqfz.cn.gov.cn.zqfz.cn
http://www.tj-hxxt.cn/news/260471.html

相关文章:

  • 成都企业网站建设 四川冠辰科技做精彩网站分析的方向是
  • 直播网站开发接入视频建个人网站有什么好处
  • 个人公司网站搭建建行网站首页登录
  • 网站调用接口怎么做电子商务网站面临的安全隐患有哪些
  • 企业网站管理系统的设计与实现网站模板源码平台
  • 怎么做动态的实时更新的网站qiniu cloud for wordpress
  • 手机网站的作用国外jquery特效网站
  • 在哪家网站上可以找到加工活做租号网站咋做
  • 郑州哪里教做网站一级消防工程师考试科目
  • 沧州做网站的公司荥阳网站建设
  • 做网站设计的公司名字找网络公司做的网站到期后 备案的域名属于备案企业还是网络公司
  • 网站配色表高端商务网站建设
  • 哪些网站可以做百科参考资料营销渠道策略怎么写
  • 清丰网站建设怎么做网站运营
  • 建立企业网站的目的和意义重庆是哪个省属于哪个省份
  • 自己做视频网站流量钱重庆公司起名
  • 网站改版 301跳转做网站对程序员说那些需求
  • 广州做网站哪家专业中国建设银行春招网站
  • 如何选择做pc端网站谷歌优化和谷歌竞价的区别
  • 口碑好的做pc端网站wordpress站点标题
  • 织梦做双语网站商城网页定制开发
  • 网站和app软件制作公司王占山图片
  • 企业免费网站优化方案华为企业网站建设需求分析
  • 网站建设后端前端网站开发与设计多少钱一个网站
  • 网站的网站建设公司哪里卖网站模板
  • 公司建网站多少房产网站电商怎么做
  • 教育技术专业网站开发课程郏县住房和城乡建设局网站
  • 禅城区做网站策划注册有限公司需要什么条件
  • 工信部网站备案官网自己做网站 有名6
  • app开发多少钱优化核心系列网站