Fanboi Channel

โปรแกรมเมอร์ที่รัก

Last posted

Total of 1000 posts

509 Nameless Fanboi Posted ID:QeQsjGPgd

>>507 ดูแล้วมึงอาจจะไม่แม่น c จะเขียนละเอียดหน่อยๆ
union ใช้ stl มี set ให้ใช้
ทำไว้สองเซ็ต A,B union ก็ insert ของใน B ลง A ก็ได้ จบ ได้ union set แล้ว stl ของ c++ ไม่เก็บค่าซ้ำ และภายในมันเรียงเป็น binary tree ให้เสมอ ใส่ของ1ตัว ก็logn nตัวก็ nlogn

intersect มี A ก็ใช้ iterator ดึงของใน B ทีละตัว มา find ใน A ตัวนี้มีในAมั้ย มีก็ใช่ นี่ก็ nlogn

อีกวิธี
เลขมากสุดได้กำหนดมั้ย ถ้าไม่เกินล้านและไม่เป็นลบใช้ array ดีกว่า เก็บเป็นbitmap เช่นมีเลข 5 ก็ A[5] = 1 ไรงี้ ที่ไม่มีก็ค่า 0 อยู่แล้ว ทีนี้ตอน access จะเร็วล่ะ union ก็ทำ A ไว้ B มาก็ให้เซ็ทมันเป็น 1 ทั้ง B กับ A เลขไหนมีก็เป็น 1 ล่ะ intersect ทำA ไว้ B มาก็ -2 ก็ได้ คราวนี้ตัวซ้ำเป็น -1 ล่ะ วนปริ้นตัวซ้ำ เวลาก็ n
อืมถ้า malloc หรือ new มาอย่าลืมเซ็ทค่าเริ่ม =0 และแนะนำให้ malloc หรือ new เพราะมันไปจองหน่วยความจำใน heap ซึ่งมันใหญ่ มึงจองได้เกินล้านช่องก็ได้(คิดว่านะ) ถ้าประกาศธรรมดาโปรแกรมมันจะไปจองให้ที่ stack จองได้ไม่เยอะ อย่าลืม memory leak (ต้อง)free เมื่อเลิกใช้ด้วย

Posts limit exceeded

Topic has reached maximum number of posts.

Please start a new topic.

Be Civil — "Be curious, not judgemental"

  • FAQs — คำถามที่ถามบ่อย (การใช้บอร์ด การแบน ฯลฯ)
  • Policy — เกณฑ์การใช้งานเว็บไซต์
  • Guidelines — ข้อแนะนำในการใช้งานเว็บไซต์
  • Deletion Request — แจ้งลบและเกณฑ์การลบข้อความ
  • Law Enforcement — แจ้งขอ IP address

All contents are responsibility of its posters.