Technology sharing

Electus Likou, Superficies Niukelian quaestiones test

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

💎 欢迎各位大佬互三:mea pagina

1. Reverse coniunctum album

206.Reverse coniunctum album

Cogitans: Si spatium adiectis non aperis et tantum in album originali coniunctum mitiges, quis modus adhibendus est?

Incipe a secundo elemento, et caput inserendo in ordine perficio.

Tunc solum relationem mutare et ultimum elementum nulli monstrare

  1. class Solution {
  2. public ListNode reverseList(ListNode head) {
  3. //head为null,直接返回
  4. if(head == null){
  5. return head;
  6. }
  7. ListNode cur = head.next;
  8. //head变为了末尾元素,指向null
  9. head.next = null;
  10. while(cur!=null){
  11. //curn为cur的next节点,便于往后移动
  12. ListNode curn = cur.next;
  13. cur.next = head;
  14. head = cur;
  15. //更新cur
  16. cur = curn;
  17. }
  18. return head;
  19. }
  20. }

2. Nodus medius coniunctus list

876. Nodus medius coniunctionis index

Primus modus, qui in mentem venit huic quaestioni, definite definire cnt, percurrere semel album coniunctum, deinde medium invenire numerum, et postea percurrere valorem reditus album coniunctum semel tantum nodi medium invenire?

Hic nova notio est: utere indicibus celere et tardis, a capite incipiens. Ieiunium monstratorem duos nodos singulis diebus movet, et tardus monstrator unum nodi se movet omni tempore.

Tum efficiendum illud:

  1. class Solution {
  2. public ListNode middleNode(ListNode head) {
  3. if(head == null){
  4. return null;
  5. }
  6. ListNode fast = head;
  7. ListNode slow = head;
  8. while(fast!= null&&fast.next!= null){
  9. fast = fast.next.next;
  10. slow = slow.next;
  11. }
  12. return slow;
  13. }
  14. }

Hoccine efficacius?

3. Revertere k-th nodi ab ultimo

Colloquium interrogatio 02.02

Primum, quod huic quaestioni occurrit, semel ut totam longitudinem percurras, et inde ab ultimo nodum invenias. Similiter,Ieiunium et lentis indicibus utens, primum ieiunus ibit nodos, et tunc tardus et velox simul perge sit k-th nodi ab imo.

Haec quaestio indicat initus k legalis esse, ideo non addito iudicio opus est. Quomodo iudicare si k illicitum est, et requiritur quod longitudo electronici notae directe inveniri non potest, tam tarda necessitates ad ambulandum iudicandum.

  1. class Solution {
  2. public int kthToLast(ListNode head, int k) {
  3. if (head == null) {
  4. return -1;
  5. }
  6. ListNode fast = head;
  7. ListNode slow = head;
  8. int cnt = 0;
  9. while (cnt != k - 1) {
  10. //判断k的合法性,虽然本题不用判断
  11. fast = fast.next;
  12. if(fast == null){
  13. return;
  14. }
  15. cnt++;
  16. }
  17. //slow和fast同时移动
  18. while (fast.next != null) {
  19. fast = fast.next;
  20. slow = slow.next;
  21. }
  22. return slow.val;
  23. }
  24. }

4. Merge coniunctum lists

21. Merge duo lists iussit coniunctum

Idea:Tantum debes novam nodi novam definire, tum val- de capitis A et capitis B. Ut tandem caput nodi in indice coniunctum immersorum invenias, etiam debes tmp = newH definire, et deinde quisquis minorem habet. tmp.next monstrabit.

  1. class Solution {
  2. public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
  3. ListNode head = new ListNode();
  4. ListNode tmp = head;
  5. while(list1!=null&&list2!=null){
  6. if(list1.val < list2.val){
  7. tmp.next = list1;
  8. list1 = list1.next;
  9. tmp = tmp.next;
  10. }else{
  11. tmp.next = list2;
  12. list2 = list2.next;
  13. tmp = tmp.next;
  14. }
  15. }
  16. //判断剩余的情况
  17. if(list1!=null){
  18. tmp.next = list1;
  19. }else if(list2!=null){
  20. tmp.next = list2;
  21. }
  22. return head.next;
  23. }
  24. }

5. Coniunctum album split

CM11 coniunctum album split

Haec quaestio de Niuke colloquium est. Sensus quaestionis est album coniunctum dividere. Laevum latus x minor est quam x, dextrum latus maius quam x.

Idea: Definire novam nodi cur percurrendi indicem originale coniunctum (ne in indice originali coniunctum mutetur), omnia maiora quam x in album coniunctum pone, omnia minora quam x in album coniunctum pone, et tandem utrasque coniungas. conexae tabulae.

  1. public class Partition {
  2. public ListNode partition(ListNode pHead, int x) {
  3. ListNode bs = null;
  4. ListNode be = null;
  5. ListNode as = null;
  6. ListNode ae = null;
  7. ListNode cur = pHead;
  8. while (cur != null) {
  9. if (cur.val < x) {
  10. //处理刚开始为null的情况
  11. if (bs == null) {
  12. bs = be = cur;
  13. }else{
  14. be.next = cur;
  15. be = be.next;
  16. }
  17. }else{
  18. if(as == null){
  19. as = ae = cur;
  20. }else{
  21. ae.next = cur;
  22. ae = ae.next;
  23. }
  24. }
  25. cur = cur.next;
  26. }
  27. //都是比x大的情况
  28. if(bs == null){
  29. return as;
  30. }
  31. be.next = as;
  32. //最后都要置为null,不然可能会报错
  33. if(as!=null){
  34. ae.next = null;
  35. }
  36. return bs;
  37. }
  38. }

Notandum, quod si majores sint quam x, id est, bs = nulli, tunc directe redibitur, et si as.nexus tandem ad nullum ponatur.

6. Palindrome structura OR36 coniunctum album

OR36 palindrome compages in album coniunctum

Haec quaestio est de Niuke, quia tempus complexionis et complexitatis spatium exigentias habet, id quod significat non potes aperire accessionem ordinatam, alioquin spatium multiplicitas non superabitur, et normales traversales implicationem habebunt O (n)

Idea talis est: primum nodi media nexae tardos inveniunt, deinde partem a medio ad finem convertunt valores diversi sunt, significat non reverti

Indicem coniunctum invertendo et nodi intermedii inveniendo adhibiti sunt

  1. public class PalindromeList {
  2. public boolean chkPalindrome(ListNode head) {
  3. if (head == null) {
  4. return true;
  5. }
  6. //找到中间节点
  7. ListNode fast = head;
  8. ListNode slow = head;
  9. while (fast != null && fast.next != null) {
  10. fast = fast.next.next;
  11. slow = slow.next;
  12. }
  13. //从slow开始到末尾反转
  14. ListNode cur = slow.next;
  15. while (cur != null) {
  16. ListNode curn = cur.next;
  17. cur.next = slow;
  18. slow = cur;
  19. cur = curn;
  20. }
  21. //判断回文
  22. while (head != slow) {
  23. if (head.val != slow.val) {
  24. return false;
  25. }
  26. //判断偶数节点
  27. if (head.next == slow) {
  28. return true;
  29. }
  30. head = head.next;
  31. slow = slow.next;
  32. }
  33. return true;
  34. }
  35. }

Notandum est etiam differentiam esse iudicio indicem nodum numerorum imparium et coniunctionem nodis numerorum numerorum.

Si numerus par nodi ad summum movetur, ansam infinitam efficiet, ut ad nodi numero addito iudicium necessarium sit.

7. Intersectis coniunctum lists

160. intercisae connexae tabulae

Intersecans indicem coniunctum transmutatio "Y" similis est, ut in figura ostensum est

Pictura de qua infra agitur etiam clarissima est.

Idea: Quia sive A brevis est sive B est brevis, differentia eorum est pars ante sectionem nodi identici sunt secent

  1. public class Solution {
  2. public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
  3. ListNode pl = headA;
  4. ListNode ps = headB;
  5. int cnta = 0,cntb = 0;
  6. //计算两个链表的长度
  7. while(pl!=null){
  8. pl = pl.next;
  9. cnta++;
  10. }
  11. while(ps!=null){
  12. ps = ps.next;
  13. cntb++;
  14. }
  15. //如果链表b长,就更新pl,ps
  16. int len = cnta - cntb;
  17. //上面求长度时pl,ps都为空了,所以这里再重新指向
  18. pl = headA;
  19. ps = headB;
  20. if(len < 0){
  21. pl = headB;
  22. ps = headA;
  23. len = cntb - cnta;
  24. }
  25. //移动差值
  26. while(len!=0){
  27. pl = pl.next;
  28. len--;
  29. }
  30. //找到相交节点
  31. while(pl!=ps){
  32. pl = pl.next;
  33. ps = ps.next;
  34. }
  35. //链表不相交的情况
  36. if(pl == null) return null;
  37. return pl;
  38. }
  39. }

Denique adiungi condicionem disiunctim necesse est. Etsi hanc quaestionem praeterire possumus non addendo, tamen rigoris causa addere debemus.

8. Circularis coniunctus index

8.1 Utrum ansa sit

141. Index coniunctus circularis

Quomodo evolvatur an index coniunctus habeat cyclum;Adhuc celeritatis monstratorem utuntur, sicut duo homines in terra currunt, unus homo velociter currit et alter tardius currit at si Tamaki non esset, nunquam occurrere posses, sicut dea, quamlibet duram persequeris, capere non possis.

Sed alia est condicio.

Ideo indicibus definitis opus est iudicare quot gradus singulis diebus sumantur.

  1. public class Solution {
  2. public boolean hasCycle(ListNode head) {
  3. ListNode fast = head;
  4. ListNode slow = head;
  5. while(fast!=null&&fast.next!=null){
  6. fast = fast.next.next;
  7. slow = slow.next;
  8. if(fast == slow) return true;
  9. }
  10. return false;
  11. }
  12. }

8.2 Redde nodi ad ostium anuli

142. Index coniunctorum circularis II

Hoc tempore debes invenire anulum punctum in anulo iudicans an anulus sit in superiore quaestione

  1. public class Solution {
  2. public ListNode detectCycle(ListNode head) {
  3. ListNode fast = head;
  4. ListNode slow = head;
  5. //判断环
  6. while(fast!=null&&fast.next!=null){
  7. fast = fast.next.next;
  8. slow = slow.next;
  9. if(fast == slow) break;
  10. }
  11. if(fast == null||fast.next == null) return null;
  12. slow = head;
  13. //寻找环
  14. while(slow!=fast){
  15. slow = slow.next;
  16. fast = fast.next;
  17. }
  18. return slow;
  19. }
  20. }

Quod addendum est;

Cum anulus minimus est, effectus finalis simplicior fit superius, sed primigenium codicem adhuc minutum est.